DictionaryInspectorView.st
author Claus Gittinger <cg@exept.de>
Thu, 23 Jul 1998 23:15:03 +0200
changeset 1740 5dd8db18c0cf
parent 1665 7e3fc40e26ad
child 1742 982fa0fdf9e3
permissions -rw-r--r--
added show references
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
36
ccde5a941840 *** empty log message ***
claus
parents:
diff changeset
     1
"
ccde5a941840 *** empty log message ***
claus
parents:
diff changeset
     2
 COPYRIGHT (c) 1993 by Claus Gittinger
52
7b48409ae088 *** empty log message ***
claus
parents: 45
diff changeset
     3
	      All Rights Reserved
36
ccde5a941840 *** empty log message ***
claus
parents:
diff changeset
     4
ccde5a941840 *** empty log message ***
claus
parents:
diff changeset
     5
 This software is furnished under a license and may be used
ccde5a941840 *** empty log message ***
claus
parents:
diff changeset
     6
 only in accordance with the terms of that license and with the
ccde5a941840 *** empty log message ***
claus
parents:
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
ccde5a941840 *** empty log message ***
claus
parents:
diff changeset
     8
 be provided or otherwise made available to, or used by, any
ccde5a941840 *** empty log message ***
claus
parents:
diff changeset
     9
 other person.  No title to or ownership of the software is
ccde5a941840 *** empty log message ***
claus
parents:
diff changeset
    10
 hereby transferred.
ccde5a941840 *** empty log message ***
claus
parents:
diff changeset
    11
"
ccde5a941840 *** empty log message ***
claus
parents:
diff changeset
    12
ccde5a941840 *** empty log message ***
claus
parents:
diff changeset
    13
InspectorView subclass:#DictionaryInspectorView
361
d1c82e7aa149 handle nil inspectedObjects (mhmh)
Claus Gittinger <cg@exept.de>
parents: 200
diff changeset
    14
	instanceVariableNames:'keys'
d1c82e7aa149 handle nil inspectedObjects (mhmh)
Claus Gittinger <cg@exept.de>
parents: 200
diff changeset
    15
	classVariableNames:''
d1c82e7aa149 handle nil inspectedObjects (mhmh)
Claus Gittinger <cg@exept.de>
parents: 200
diff changeset
    16
	poolDictionaries:''
d1c82e7aa149 handle nil inspectedObjects (mhmh)
Claus Gittinger <cg@exept.de>
parents: 200
diff changeset
    17
	category:'Interface-Inspector'
36
ccde5a941840 *** empty log message ***
claus
parents:
diff changeset
    18
!
ccde5a941840 *** empty log message ***
claus
parents:
diff changeset
    19
957
ecbcb2c15ae8 show a waitCursor, while collecitng keys
Claus Gittinger <cg@exept.de>
parents: 689
diff changeset
    20
!DictionaryInspectorView class methodsFor:'documentation'!
36
ccde5a941840 *** empty log message ***
claus
parents:
diff changeset
    21
ccde5a941840 *** empty log message ***
claus
parents:
diff changeset
    22
copyright
ccde5a941840 *** empty log message ***
claus
parents:
diff changeset
    23
"
ccde5a941840 *** empty log message ***
claus
parents:
diff changeset
    24
 COPYRIGHT (c) 1993 by Claus Gittinger
52
7b48409ae088 *** empty log message ***
claus
parents: 45
diff changeset
    25
	      All Rights Reserved
36
ccde5a941840 *** empty log message ***
claus
parents:
diff changeset
    26
ccde5a941840 *** empty log message ***
claus
parents:
diff changeset
    27
 This software is furnished under a license and may be used
ccde5a941840 *** empty log message ***
claus
parents:
diff changeset
    28
 only in accordance with the terms of that license and with the
ccde5a941840 *** empty log message ***
claus
parents:
diff changeset
    29
 inclusion of the above copyright notice.   This software may not
ccde5a941840 *** empty log message ***
claus
parents:
diff changeset
    30
 be provided or otherwise made available to, or used by, any
ccde5a941840 *** empty log message ***
claus
parents:
diff changeset
    31
 other person.  No title to or ownership of the software is
ccde5a941840 *** empty log message ***
claus
parents:
diff changeset
    32
 hereby transferred.
ccde5a941840 *** empty log message ***
claus
parents:
diff changeset
    33
"
ccde5a941840 *** empty log message ***
claus
parents:
diff changeset
    34
!
ccde5a941840 *** empty log message ***
claus
parents:
diff changeset
    35
ccde5a941840 *** empty log message ***
claus
parents:
diff changeset
    36
documentation
ccde5a941840 *** empty log message ***
claus
parents:
diff changeset
    37
"
ccde5a941840 *** empty log message ***
claus
parents:
diff changeset
    38
    a modified Inspector for Dictionaries
510
6543e55fb227 documentation
Claus Gittinger <cg@exept.de>
parents: 470
diff changeset
    39
6543e55fb227 documentation
Claus Gittinger <cg@exept.de>
parents: 470
diff changeset
    40
    [author:]
6543e55fb227 documentation
Claus Gittinger <cg@exept.de>
parents: 470
diff changeset
    41
        Claus Gittinger
36
ccde5a941840 *** empty log message ***
claus
parents:
diff changeset
    42
"
ccde5a941840 *** empty log message ***
claus
parents:
diff changeset
    43
! !
ccde5a941840 *** empty log message ***
claus
parents:
diff changeset
    44
470
5bb60cb688c8 category rename / added monitor stuff
Claus Gittinger <cg@exept.de>
parents: 385
diff changeset
    45
!DictionaryInspectorView methodsFor:'menu'!
36
ccde5a941840 *** empty log message ***
claus
parents:
diff changeset
    46
73
e332d9c71624 *** empty log message ***
claus
parents: 57
diff changeset
    47
fieldMenu
1361
20c353524524 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 957
diff changeset
    48
    <resource: #programMenu >
20c353524524 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 957
diff changeset
    49
1665
7e3fc40e26ad *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1361
diff changeset
    50
    |items m|
36
ccde5a941840 *** empty log message ***
claus
parents:
diff changeset
    51
45
950b84ba89e6 *** empty log message ***
claus
parents: 36
diff changeset
    52
    inspectedObject == Smalltalk ifTrue:[
1665
7e3fc40e26ad *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1361
diff changeset
    53
        items := #(
7e3fc40e26ad *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1361
diff changeset
    54
                       ('inspect'              doInspect      )
7e3fc40e26ad *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1361
diff changeset
    55
                       ('inspect key'          doInspectKey   )
7e3fc40e26ad *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1361
diff changeset
    56
                       ('basicInspect'         doBasicInspect )
7e3fc40e26ad *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1361
diff changeset
    57
                       ('inspect hierarchical' doNewInspect   )
1740
5dd8db18c0cf added show references
Claus Gittinger <cg@exept.de>
parents: 1665
diff changeset
    58
                       ('references'           showReferences )
5dd8db18c0cf added show references
Claus Gittinger <cg@exept.de>
parents: 1665
diff changeset
    59
                       ('references to key'    showKeyReferences )
1665
7e3fc40e26ad *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1361
diff changeset
    60
                       ('-'                    nil            )
7e3fc40e26ad *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1361
diff changeset
    61
                       ('add key'              doAddKey       )
7e3fc40e26ad *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1361
diff changeset
    62
                       ('remove key'           doRemoveKey    )
470
5bb60cb688c8 category rename / added monitor stuff
Claus Gittinger <cg@exept.de>
parents: 385
diff changeset
    63
                   ).
45
950b84ba89e6 *** empty log message ***
claus
parents: 36
diff changeset
    64
    ] ifFalse:[
1665
7e3fc40e26ad *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1361
diff changeset
    65
        items := #(
7e3fc40e26ad *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1361
diff changeset
    66
                       ('inspect'              doInspect      )
7e3fc40e26ad *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1361
diff changeset
    67
                       ('inspect key'          doInspectKey   )
7e3fc40e26ad *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1361
diff changeset
    68
                       ('basicInspect'         doBasicInspect )
7e3fc40e26ad *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1361
diff changeset
    69
                       ('inspect hierarchical' doNewInspect   )
1740
5dd8db18c0cf added show references
Claus Gittinger <cg@exept.de>
parents: 1665
diff changeset
    70
                       ('references'           showReferences )
1665
7e3fc40e26ad *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1361
diff changeset
    71
                       ('-'                    nil            )
7e3fc40e26ad *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1361
diff changeset
    72
                       ('add key'              doAddKey       )
7e3fc40e26ad *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1361
diff changeset
    73
                       ('remove key'           doRemoveKey    )
470
5bb60cb688c8 category rename / added monitor stuff
Claus Gittinger <cg@exept.de>
parents: 385
diff changeset
    74
                   ).
5bb60cb688c8 category rename / added monitor stuff
Claus Gittinger <cg@exept.de>
parents: 385
diff changeset
    75
    ].
5bb60cb688c8 category rename / added monitor stuff
Claus Gittinger <cg@exept.de>
parents: 385
diff changeset
    76
5bb60cb688c8 category rename / added monitor stuff
Claus Gittinger <cg@exept.de>
parents: 385
diff changeset
    77
    monitorProcess isNil ifTrue:[
1665
7e3fc40e26ad *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1361
diff changeset
    78
        items := items , #(
7e3fc40e26ad *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1361
diff changeset
    79
                       ('-'                nil            )
7e3fc40e26ad *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1361
diff changeset
    80
                       ('start monitor'    doStartMonitor )
7e3fc40e26ad *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1361
diff changeset
    81
                          ).
470
5bb60cb688c8 category rename / added monitor stuff
Claus Gittinger <cg@exept.de>
parents: 385
diff changeset
    82
    ] ifFalse:[
1665
7e3fc40e26ad *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1361
diff changeset
    83
        items := items , #(
7e3fc40e26ad *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1361
diff changeset
    84
                       ('-'                nil            )
7e3fc40e26ad *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1361
diff changeset
    85
                       ('stop monitor'     doStopMonitor  )
7e3fc40e26ad *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1361
diff changeset
    86
                          ).
45
950b84ba89e6 *** empty log message ***
claus
parents: 36
diff changeset
    87
    ].
950b84ba89e6 *** empty log message ***
claus
parents: 36
diff changeset
    88
1665
7e3fc40e26ad *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1361
diff changeset
    89
    m := PopUpMenu itemList:items resources:resources.
470
5bb60cb688c8 category rename / added monitor stuff
Claus Gittinger <cg@exept.de>
parents: 385
diff changeset
    90
1665
7e3fc40e26ad *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1361
diff changeset
    91
    selectedLine isNil ifTrue:[
7e3fc40e26ad *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1361
diff changeset
    92
        m disableAll:#(doInspect doInspectKey doBasicInspect doNewInspect
7e3fc40e26ad *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1361
diff changeset
    93
                       doRemoveKey doStartMonitor doStopMonitor
7e3fc40e26ad *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1361
diff changeset
    94
                      )
7e3fc40e26ad *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1361
diff changeset
    95
    ].
7e3fc40e26ad *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1361
diff changeset
    96
    ^ m.
7e3fc40e26ad *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1361
diff changeset
    97
7e3fc40e26ad *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1361
diff changeset
    98
    "Modified: / 21.5.1998 / 13:25:10 / cg"
36
ccde5a941840 *** empty log message ***
claus
parents:
diff changeset
    99
! !
200
01ce3d3636d5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 165
diff changeset
   100
470
5bb60cb688c8 category rename / added monitor stuff
Claus Gittinger <cg@exept.de>
parents: 385
diff changeset
   101
!DictionaryInspectorView methodsFor:'menu actions'!
200
01ce3d3636d5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 165
diff changeset
   102
01ce3d3636d5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 165
diff changeset
   103
doAddKey
01ce3d3636d5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 165
diff changeset
   104
    "add a key"
01ce3d3636d5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 165
diff changeset
   105
01ce3d3636d5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 165
diff changeset
   106
    |keyName key|
01ce3d3636d5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 165
diff changeset
   107
01ce3d3636d5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 165
diff changeset
   108
    keyName := Dialog request:'key to add:' initialAnswer:''.
01ce3d3636d5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 165
diff changeset
   109
    keyName notEmpty ifTrue:[
01ce3d3636d5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 165
diff changeset
   110
	key := keyName asSymbol.
01ce3d3636d5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 165
diff changeset
   111
	(inspectedObject includesKey:key) ifFalse:[
01ce3d3636d5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 165
diff changeset
   112
	    inspectedObject at:key put:nil.
01ce3d3636d5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 165
diff changeset
   113
	    selectedLine := nil.
01ce3d3636d5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 165
diff changeset
   114
	    inspectedObject changed.
01ce3d3636d5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 165
diff changeset
   115
	    self inspect:inspectedObject. "force list update"
01ce3d3636d5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 165
diff changeset
   116
	]
01ce3d3636d5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 165
diff changeset
   117
    ]
01ce3d3636d5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 165
diff changeset
   118
!
01ce3d3636d5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 165
diff changeset
   119
01ce3d3636d5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 165
diff changeset
   120
doInspectKey
01ce3d3636d5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 165
diff changeset
   121
    "inspect selected items key"
01ce3d3636d5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 165
diff changeset
   122
01ce3d3636d5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 165
diff changeset
   123
    selectedLine notNil ifTrue:[
01ce3d3636d5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 165
diff changeset
   124
	selectedLine ~~ 1 ifTrue:[
01ce3d3636d5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 165
diff changeset
   125
	    (keys at:selectedLine - 1) inspect
01ce3d3636d5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 165
diff changeset
   126
	].
01ce3d3636d5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 165
diff changeset
   127
    ]
01ce3d3636d5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 165
diff changeset
   128
!
01ce3d3636d5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 165
diff changeset
   129
01ce3d3636d5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 165
diff changeset
   130
doReferences
01ce3d3636d5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 165
diff changeset
   131
    "show users of selected key (i.e. global)"
01ce3d3636d5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 165
diff changeset
   132
01ce3d3636d5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 165
diff changeset
   133
    |k|
01ce3d3636d5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 165
diff changeset
   134
01ce3d3636d5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 165
diff changeset
   135
    selectedLine notNil ifTrue:[
01ce3d3636d5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 165
diff changeset
   136
	selectedLine == 1 ifFalse:[
01ce3d3636d5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 165
diff changeset
   137
	    k := (keys at:selectedLine - 1).
01ce3d3636d5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 165
diff changeset
   138
	    SystemBrowser browseReferendsOf:k asSymbol
01ce3d3636d5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 165
diff changeset
   139
	].
01ce3d3636d5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 165
diff changeset
   140
    ]
01ce3d3636d5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 165
diff changeset
   141
!
01ce3d3636d5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 165
diff changeset
   142
01ce3d3636d5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 165
diff changeset
   143
doRemoveKey
01ce3d3636d5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 165
diff changeset
   144
    "remove selected item from keys"
01ce3d3636d5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 165
diff changeset
   145
01ce3d3636d5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 165
diff changeset
   146
    |key|
01ce3d3636d5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 165
diff changeset
   147
01ce3d3636d5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 165
diff changeset
   148
    selectedLine == 1 ifFalse:[
01ce3d3636d5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 165
diff changeset
   149
	key := (keys at:selectedLine - 1).
01ce3d3636d5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 165
diff changeset
   150
	(inspectedObject includesKey:key) ifTrue:[
01ce3d3636d5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 165
diff changeset
   151
	    listView cursor:(Cursor wait).
01ce3d3636d5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 165
diff changeset
   152
	    inspectedObject removeKey:key.
01ce3d3636d5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 165
diff changeset
   153
	    keys := nil.
01ce3d3636d5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 165
diff changeset
   154
	    selectedLine := nil.
01ce3d3636d5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 165
diff changeset
   155
	    inspectedObject changed.
01ce3d3636d5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 165
diff changeset
   156
	    listView cursor:(Cursor hand).
01ce3d3636d5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 165
diff changeset
   157
	    self inspect:inspectedObject. "force list update"
01ce3d3636d5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 165
diff changeset
   158
	].
01ce3d3636d5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 165
diff changeset
   159
    ]
1740
5dd8db18c0cf added show references
Claus Gittinger <cg@exept.de>
parents: 1665
diff changeset
   160
!
5dd8db18c0cf added show references
Claus Gittinger <cg@exept.de>
parents: 1665
diff changeset
   161
5dd8db18c0cf added show references
Claus Gittinger <cg@exept.de>
parents: 1665
diff changeset
   162
showKeyReferences
5dd8db18c0cf added show references
Claus Gittinger <cg@exept.de>
parents: 1665
diff changeset
   163
    "show users of selected key (i.e. global)"
5dd8db18c0cf added show references
Claus Gittinger <cg@exept.de>
parents: 1665
diff changeset
   164
5dd8db18c0cf added show references
Claus Gittinger <cg@exept.de>
parents: 1665
diff changeset
   165
    |k|
5dd8db18c0cf added show references
Claus Gittinger <cg@exept.de>
parents: 1665
diff changeset
   166
5dd8db18c0cf added show references
Claus Gittinger <cg@exept.de>
parents: 1665
diff changeset
   167
    selectedLine notNil ifTrue:[
5dd8db18c0cf added show references
Claus Gittinger <cg@exept.de>
parents: 1665
diff changeset
   168
        selectedLine == 1 ifFalse:[
5dd8db18c0cf added show references
Claus Gittinger <cg@exept.de>
parents: 1665
diff changeset
   169
            k := (keys at:selectedLine - 1).
5dd8db18c0cf added show references
Claus Gittinger <cg@exept.de>
parents: 1665
diff changeset
   170
            self withWaitCursorDo:[
5dd8db18c0cf added show references
Claus Gittinger <cg@exept.de>
parents: 1665
diff changeset
   171
                SystemBrowser browseReferendsOf:k asSymbol
5dd8db18c0cf added show references
Claus Gittinger <cg@exept.de>
parents: 1665
diff changeset
   172
            ]
5dd8db18c0cf added show references
Claus Gittinger <cg@exept.de>
parents: 1665
diff changeset
   173
        ].
5dd8db18c0cf added show references
Claus Gittinger <cg@exept.de>
parents: 1665
diff changeset
   174
    ]
5dd8db18c0cf added show references
Claus Gittinger <cg@exept.de>
parents: 1665
diff changeset
   175
470
5bb60cb688c8 category rename / added monitor stuff
Claus Gittinger <cg@exept.de>
parents: 385
diff changeset
   176
! !
5bb60cb688c8 category rename / added monitor stuff
Claus Gittinger <cg@exept.de>
parents: 385
diff changeset
   177
5bb60cb688c8 category rename / added monitor stuff
Claus Gittinger <cg@exept.de>
parents: 385
diff changeset
   178
!DictionaryInspectorView methodsFor:'private'!
5bb60cb688c8 category rename / added monitor stuff
Claus Gittinger <cg@exept.de>
parents: 385
diff changeset
   179
649
11d4cbff1092 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 645
diff changeset
   180
defaultLabel
11d4cbff1092 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 645
diff changeset
   181
    ^ 'keys'
11d4cbff1092 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 645
diff changeset
   182
11d4cbff1092 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 645
diff changeset
   183
    "Created: 28.6.1996 / 19:46:51 / cg"
11d4cbff1092 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 645
diff changeset
   184
!
11d4cbff1092 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 645
diff changeset
   185
470
5bb60cb688c8 category rename / added monitor stuff
Claus Gittinger <cg@exept.de>
parents: 385
diff changeset
   186
fieldList 
5bb60cb688c8 category rename / added monitor stuff
Claus Gittinger <cg@exept.de>
parents: 385
diff changeset
   187
    "return a list of names for the selectionlist. Leave hasMore as
5bb60cb688c8 category rename / added monitor stuff
Claus Gittinger <cg@exept.de>
parents: 385
diff changeset
   188
     true, if a '...' entry should be added."
5bb60cb688c8 category rename / added monitor stuff
Claus Gittinger <cg@exept.de>
parents: 385
diff changeset
   189
5bb60cb688c8 category rename / added monitor stuff
Claus Gittinger <cg@exept.de>
parents: 385
diff changeset
   190
    |aList|
5bb60cb688c8 category rename / added monitor stuff
Claus Gittinger <cg@exept.de>
parents: 385
diff changeset
   191
5bb60cb688c8 category rename / added monitor stuff
Claus Gittinger <cg@exept.de>
parents: 385
diff changeset
   192
    inspectedObject isNil ifTrue:[^ #()].
5bb60cb688c8 category rename / added monitor stuff
Claus Gittinger <cg@exept.de>
parents: 385
diff changeset
   193
957
ecbcb2c15ae8 show a waitCursor, while collecitng keys
Claus Gittinger <cg@exept.de>
parents: 689
diff changeset
   194
    self topView withWaitCursorDo:[
ecbcb2c15ae8 show a waitCursor, while collecitng keys
Claus Gittinger <cg@exept.de>
parents: 689
diff changeset
   195
        keys := inspectedObject keys asSortedCollection:[:a :b | a displayString < b displayString].
ecbcb2c15ae8 show a waitCursor, while collecitng keys
Claus Gittinger <cg@exept.de>
parents: 689
diff changeset
   196
        aList := keys collect:[:k | k isSymbol ifTrue:[
ecbcb2c15ae8 show a waitCursor, while collecitng keys
Claus Gittinger <cg@exept.de>
parents: 689
diff changeset
   197
                                                    k printString
ecbcb2c15ae8 show a waitCursor, while collecitng keys
Claus Gittinger <cg@exept.de>
parents: 689
diff changeset
   198
                                                   ] ifFalse:[
ecbcb2c15ae8 show a waitCursor, while collecitng keys
Claus Gittinger <cg@exept.de>
parents: 689
diff changeset
   199
                                                    k displayString
ecbcb2c15ae8 show a waitCursor, while collecitng keys
Claus Gittinger <cg@exept.de>
parents: 689
diff changeset
   200
                                                   ]
ecbcb2c15ae8 show a waitCursor, while collecitng keys
Claus Gittinger <cg@exept.de>
parents: 689
diff changeset
   201
                                             ].
ecbcb2c15ae8 show a waitCursor, while collecitng keys
Claus Gittinger <cg@exept.de>
parents: 689
diff changeset
   202
        aList := aList asOrderedCollection.
ecbcb2c15ae8 show a waitCursor, while collecitng keys
Claus Gittinger <cg@exept.de>
parents: 689
diff changeset
   203
        hideReceiver ifFalse:[aList addFirst:'self'].
ecbcb2c15ae8 show a waitCursor, while collecitng keys
Claus Gittinger <cg@exept.de>
parents: 689
diff changeset
   204
    ].
470
5bb60cb688c8 category rename / added monitor stuff
Claus Gittinger <cg@exept.de>
parents: 385
diff changeset
   205
    ^ aList
5bb60cb688c8 category rename / added monitor stuff
Claus Gittinger <cg@exept.de>
parents: 385
diff changeset
   206
532
12050a9af056 Sort keys by dosplayString, not printString.
Stefan Vogel <sv@exept.de>
parents: 510
diff changeset
   207
    "Modified: 8.5.1996 / 14:16:35 / stefan"
957
ecbcb2c15ae8 show a waitCursor, while collecitng keys
Claus Gittinger <cg@exept.de>
parents: 689
diff changeset
   208
    "Modified: 14.2.1997 / 18:26:29 / cg"
470
5bb60cb688c8 category rename / added monitor stuff
Claus Gittinger <cg@exept.de>
parents: 385
diff changeset
   209
!
5bb60cb688c8 category rename / added monitor stuff
Claus Gittinger <cg@exept.de>
parents: 385
diff changeset
   210
5bb60cb688c8 category rename / added monitor stuff
Claus Gittinger <cg@exept.de>
parents: 385
diff changeset
   211
release 
5bb60cb688c8 category rename / added monitor stuff
Claus Gittinger <cg@exept.de>
parents: 385
diff changeset
   212
    "release inspected object"
5bb60cb688c8 category rename / added monitor stuff
Claus Gittinger <cg@exept.de>
parents: 385
diff changeset
   213
5bb60cb688c8 category rename / added monitor stuff
Claus Gittinger <cg@exept.de>
parents: 385
diff changeset
   214
    keys := nil.
5bb60cb688c8 category rename / added monitor stuff
Claus Gittinger <cg@exept.de>
parents: 385
diff changeset
   215
    super release
5bb60cb688c8 category rename / added monitor stuff
Claus Gittinger <cg@exept.de>
parents: 385
diff changeset
   216
! !
5bb60cb688c8 category rename / added monitor stuff
Claus Gittinger <cg@exept.de>
parents: 385
diff changeset
   217
5bb60cb688c8 category rename / added monitor stuff
Claus Gittinger <cg@exept.de>
parents: 385
diff changeset
   218
!DictionaryInspectorView methodsFor:'user interaction'!
5bb60cb688c8 category rename / added monitor stuff
Claus Gittinger <cg@exept.de>
parents: 385
diff changeset
   219
5bb60cb688c8 category rename / added monitor stuff
Claus Gittinger <cg@exept.de>
parents: 385
diff changeset
   220
doAccept:theText
5bb60cb688c8 category rename / added monitor stuff
Claus Gittinger <cg@exept.de>
parents: 385
diff changeset
   221
    "accept value for selected item"
5bb60cb688c8 category rename / added monitor stuff
Claus Gittinger <cg@exept.de>
parents: 385
diff changeset
   222
5bb60cb688c8 category rename / added monitor stuff
Claus Gittinger <cg@exept.de>
parents: 385
diff changeset
   223
    |value|
5bb60cb688c8 category rename / added monitor stuff
Claus Gittinger <cg@exept.de>
parents: 385
diff changeset
   224
5bb60cb688c8 category rename / added monitor stuff
Claus Gittinger <cg@exept.de>
parents: 385
diff changeset
   225
    value := Compiler evaluate:theText receiver:inspectedObject notifying:workspace.
5bb60cb688c8 category rename / added monitor stuff
Claus Gittinger <cg@exept.de>
parents: 385
diff changeset
   226
5bb60cb688c8 category rename / added monitor stuff
Claus Gittinger <cg@exept.de>
parents: 385
diff changeset
   227
    selectedLine notNil ifTrue:[
5bb60cb688c8 category rename / added monitor stuff
Claus Gittinger <cg@exept.de>
parents: 385
diff changeset
   228
	selectedLine == 1 ifFalse:[
5bb60cb688c8 category rename / added monitor stuff
Claus Gittinger <cg@exept.de>
parents: 385
diff changeset
   229
	    inspectedObject at:(keys at:selectedLine - 1) put:value.
5bb60cb688c8 category rename / added monitor stuff
Claus Gittinger <cg@exept.de>
parents: 385
diff changeset
   230
	    inspectedObject changed
5bb60cb688c8 category rename / added monitor stuff
Claus Gittinger <cg@exept.de>
parents: 385
diff changeset
   231
	].
5bb60cb688c8 category rename / added monitor stuff
Claus Gittinger <cg@exept.de>
parents: 385
diff changeset
   232
    ]
200
01ce3d3636d5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 165
diff changeset
   233
!
01ce3d3636d5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 165
diff changeset
   234
01ce3d3636d5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 165
diff changeset
   235
valueAtLine:lineNr
01ce3d3636d5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 165
diff changeset
   236
    "helper - return the value of the selected entry"
01ce3d3636d5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 165
diff changeset
   237
645
16a618dcbb43 allow hiding self
Claus Gittinger <cg@exept.de>
parents: 532
diff changeset
   238
    |key idx|
200
01ce3d3636d5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 165
diff changeset
   239
645
16a618dcbb43 allow hiding self
Claus Gittinger <cg@exept.de>
parents: 532
diff changeset
   240
    hideReceiver ifTrue:[
16a618dcbb43 allow hiding self
Claus Gittinger <cg@exept.de>
parents: 532
diff changeset
   241
        idx := lineNr.
16a618dcbb43 allow hiding self
Claus Gittinger <cg@exept.de>
parents: 532
diff changeset
   242
    ] ifFalse:[
689
7def5f699bec checkin from browser
Claus Gittinger <cg@exept.de>
parents: 649
diff changeset
   243
        (lineNr == 1 or:[lineNr isNil]) ifTrue:[
645
16a618dcbb43 allow hiding self
Claus Gittinger <cg@exept.de>
parents: 532
diff changeset
   244
            ^ inspectedObject
16a618dcbb43 allow hiding self
Claus Gittinger <cg@exept.de>
parents: 532
diff changeset
   245
        ].
16a618dcbb43 allow hiding self
Claus Gittinger <cg@exept.de>
parents: 532
diff changeset
   246
        idx := lineNr - 1.
200
01ce3d3636d5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 165
diff changeset
   247
    ].
645
16a618dcbb43 allow hiding self
Claus Gittinger <cg@exept.de>
parents: 532
diff changeset
   248
    key := keys at:idx.
385
439554333cc8 handle nonExistingKey when retrieving values (in case its a weakDictionary)
Claus Gittinger <cg@exept.de>
parents: 361
diff changeset
   249
    ^ inspectedObject at:key ifAbsent:nil.
439554333cc8 handle nonExistingKey when retrieving values (in case its a weakDictionary)
Claus Gittinger <cg@exept.de>
parents: 361
diff changeset
   250
689
7def5f699bec checkin from browser
Claus Gittinger <cg@exept.de>
parents: 649
diff changeset
   251
    "Modified: 30.7.1996 / 17:44:50 / cg"
200
01ce3d3636d5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 165
diff changeset
   252
! !
01ce3d3636d5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 165
diff changeset
   253
957
ecbcb2c15ae8 show a waitCursor, while collecitng keys
Claus Gittinger <cg@exept.de>
parents: 689
diff changeset
   254
!DictionaryInspectorView class methodsFor:'documentation'!
200
01ce3d3636d5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 165
diff changeset
   255
01ce3d3636d5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 165
diff changeset
   256
version
1740
5dd8db18c0cf added show references
Claus Gittinger <cg@exept.de>
parents: 1665
diff changeset
   257
    ^ '$Header: /cvs/stx/stx/libtool/DictionaryInspectorView.st,v 1.30 1998-07-23 21:15:03 cg Exp $'
200
01ce3d3636d5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 165
diff changeset
   258
! !