OrderedCollectionInspectorView.st
author claus
Sun, 26 Mar 1995 19:35:57 +0200
changeset 88 a38a2e87687b
parent 73 e332d9c71624
child 110 570a38362ae1
permissions -rw-r--r--
*** empty log message ***
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
88
a38a2e87687b *** empty log message ***
claus
parents: 73
diff changeset
     1
"
a38a2e87687b *** empty log message ***
claus
parents: 73
diff changeset
     2
 COPYRIGHT (c) 1993 by Claus Gittinger
a38a2e87687b *** empty log message ***
claus
parents: 73
diff changeset
     3
	      All Rights Reserved
a38a2e87687b *** empty log message ***
claus
parents: 73
diff changeset
     4
a38a2e87687b *** empty log message ***
claus
parents: 73
diff changeset
     5
 This software is furnished under a license and may be used
a38a2e87687b *** empty log message ***
claus
parents: 73
diff changeset
     6
 only in accordance with the terms of that license and with the
a38a2e87687b *** empty log message ***
claus
parents: 73
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
a38a2e87687b *** empty log message ***
claus
parents: 73
diff changeset
     8
 be provided or otherwise made available to, or used by, any
a38a2e87687b *** empty log message ***
claus
parents: 73
diff changeset
     9
 other person.  No title to or ownership of the software is
a38a2e87687b *** empty log message ***
claus
parents: 73
diff changeset
    10
 hereby transferred.
a38a2e87687b *** empty log message ***
claus
parents: 73
diff changeset
    11
"
18
850295468cac Initial revision
claus
parents:
diff changeset
    12
850295468cac Initial revision
claus
parents:
diff changeset
    13
InspectorView subclass:#OrderedCollectionInspectorView
52
7b48409ae088 *** empty log message ***
claus
parents: 29
diff changeset
    14
	 instanceVariableNames:''
7b48409ae088 *** empty log message ***
claus
parents: 29
diff changeset
    15
	 classVariableNames:''
7b48409ae088 *** empty log message ***
claus
parents: 29
diff changeset
    16
	 poolDictionaries:''
7b48409ae088 *** empty log message ***
claus
parents: 29
diff changeset
    17
	 category:'Interface-Inspector'
18
850295468cac Initial revision
claus
parents:
diff changeset
    18
!
850295468cac Initial revision
claus
parents:
diff changeset
    19
88
a38a2e87687b *** empty log message ***
claus
parents: 73
diff changeset
    20
!OrderedCollectionInspectorView class methodsFor:'documentation'!
a38a2e87687b *** empty log message ***
claus
parents: 73
diff changeset
    21
a38a2e87687b *** empty log message ***
claus
parents: 73
diff changeset
    22
copyright
a38a2e87687b *** empty log message ***
claus
parents: 73
diff changeset
    23
"
a38a2e87687b *** empty log message ***
claus
parents: 73
diff changeset
    24
 COPYRIGHT (c) 1993 by Claus Gittinger
a38a2e87687b *** empty log message ***
claus
parents: 73
diff changeset
    25
	      All Rights Reserved
a38a2e87687b *** empty log message ***
claus
parents: 73
diff changeset
    26
a38a2e87687b *** empty log message ***
claus
parents: 73
diff changeset
    27
 This software is furnished under a license and may be used
a38a2e87687b *** empty log message ***
claus
parents: 73
diff changeset
    28
 only in accordance with the terms of that license and with the
a38a2e87687b *** empty log message ***
claus
parents: 73
diff changeset
    29
 inclusion of the above copyright notice.   This software may not
a38a2e87687b *** empty log message ***
claus
parents: 73
diff changeset
    30
 be provided or otherwise made available to, or used by, any
a38a2e87687b *** empty log message ***
claus
parents: 73
diff changeset
    31
 other person.  No title to or ownership of the software is
a38a2e87687b *** empty log message ***
claus
parents: 73
diff changeset
    32
 hereby transferred.
a38a2e87687b *** empty log message ***
claus
parents: 73
diff changeset
    33
"
a38a2e87687b *** empty log message ***
claus
parents: 73
diff changeset
    34
!
a38a2e87687b *** empty log message ***
claus
parents: 73
diff changeset
    35
a38a2e87687b *** empty log message ***
claus
parents: 73
diff changeset
    36
version
a38a2e87687b *** empty log message ***
claus
parents: 73
diff changeset
    37
"
a38a2e87687b *** empty log message ***
claus
parents: 73
diff changeset
    38
$Header: /cvs/stx/stx/libtool/OrderedCollectionInspectorView.st,v 1.8 1995-03-26 17:35:34 claus Exp $
a38a2e87687b *** empty log message ***
claus
parents: 73
diff changeset
    39
"
a38a2e87687b *** empty log message ***
claus
parents: 73
diff changeset
    40
! !
a38a2e87687b *** empty log message ***
claus
parents: 73
diff changeset
    41
73
e332d9c71624 *** empty log message ***
claus
parents: 59
diff changeset
    42
!OrderedCollectionInspectorView methodsFor:'private'!
e332d9c71624 *** empty log message ***
claus
parents: 59
diff changeset
    43
e332d9c71624 *** empty log message ***
claus
parents: 59
diff changeset
    44
fieldMenu
e332d9c71624 *** empty log message ***
claus
parents: 59
diff changeset
    45
    |labels selectors|
18
850295468cac Initial revision
claus
parents:
diff changeset
    46
73
e332d9c71624 *** empty log message ***
claus
parents: 59
diff changeset
    47
    hasMore ifTrue:[
88
a38a2e87687b *** empty log message ***
claus
parents: 73
diff changeset
    48
	labels := #(
a38a2e87687b *** empty log message ***
claus
parents: 73
diff changeset
    49
		      'inspect'
a38a2e87687b *** empty log message ***
claus
parents: 73
diff changeset
    50
		      'basicInspect'
a38a2e87687b *** empty log message ***
claus
parents: 73
diff changeset
    51
		      '-'
a38a2e87687b *** empty log message ***
claus
parents: 73
diff changeset
    52
		      'remove'
a38a2e87687b *** empty log message ***
claus
parents: 73
diff changeset
    53
		      '-'
a38a2e87687b *** empty log message ***
claus
parents: 73
diff changeset
    54
		      'show more'
a38a2e87687b *** empty log message ***
claus
parents: 73
diff changeset
    55
		   ).
18
850295468cac Initial revision
claus
parents:
diff changeset
    56
88
a38a2e87687b *** empty log message ***
claus
parents: 73
diff changeset
    57
	selectors := #(
a38a2e87687b *** empty log message ***
claus
parents: 73
diff changeset
    58
		      doInspect 
a38a2e87687b *** empty log message ***
claus
parents: 73
diff changeset
    59
		      doBasicInspect 
a38a2e87687b *** empty log message ***
claus
parents: 73
diff changeset
    60
		      nil 
a38a2e87687b *** empty log message ***
claus
parents: 73
diff changeset
    61
		      removeIndex
a38a2e87687b *** empty log message ***
claus
parents: 73
diff changeset
    62
		      nil 
a38a2e87687b *** empty log message ***
claus
parents: 73
diff changeset
    63
		      showMore
a38a2e87687b *** empty log message ***
claus
parents: 73
diff changeset
    64
		      ).
18
850295468cac Initial revision
claus
parents:
diff changeset
    65
    ] ifFalse:[
88
a38a2e87687b *** empty log message ***
claus
parents: 73
diff changeset
    66
	labels := #(
a38a2e87687b *** empty log message ***
claus
parents: 73
diff changeset
    67
		      'inspect'
a38a2e87687b *** empty log message ***
claus
parents: 73
diff changeset
    68
		      'basicInspect'
a38a2e87687b *** empty log message ***
claus
parents: 73
diff changeset
    69
		      '-'
a38a2e87687b *** empty log message ***
claus
parents: 73
diff changeset
    70
		      'remove'
73
e332d9c71624 *** empty log message ***
claus
parents: 59
diff changeset
    71
"/                      '-'
e332d9c71624 *** empty log message ***
claus
parents: 59
diff changeset
    72
"/                      'owners'
88
a38a2e87687b *** empty log message ***
claus
parents: 73
diff changeset
    73
		   ).
73
e332d9c71624 *** empty log message ***
claus
parents: 59
diff changeset
    74
88
a38a2e87687b *** empty log message ***
claus
parents: 73
diff changeset
    75
	selectors := #(
a38a2e87687b *** empty log message ***
claus
parents: 73
diff changeset
    76
		      doInspect 
a38a2e87687b *** empty log message ***
claus
parents: 73
diff changeset
    77
		      doBasicInspect 
a38a2e87687b *** empty log message ***
claus
parents: 73
diff changeset
    78
		      nil 
a38a2e87687b *** empty log message ***
claus
parents: 73
diff changeset
    79
		      removeIndex
73
e332d9c71624 *** empty log message ***
claus
parents: 59
diff changeset
    80
"/                      nil
e332d9c71624 *** empty log message ***
claus
parents: 59
diff changeset
    81
"/                      inspectOwners
88
a38a2e87687b *** empty log message ***
claus
parents: 73
diff changeset
    82
		      ).
18
850295468cac Initial revision
claus
parents:
diff changeset
    83
    ].
73
e332d9c71624 *** empty log message ***
claus
parents: 59
diff changeset
    84
e332d9c71624 *** empty log message ***
claus
parents: 59
diff changeset
    85
    ^ PopUpMenu
88
a38a2e87687b *** empty log message ***
claus
parents: 73
diff changeset
    86
	  labels:(resources array:labels)
a38a2e87687b *** empty log message ***
claus
parents: 73
diff changeset
    87
	  selectors:selectors
23
3363884b8e9f *** empty log message ***
claus
parents: 18
diff changeset
    88
!
3363884b8e9f *** empty log message ***
claus
parents: 18
diff changeset
    89
73
e332d9c71624 *** empty log message ***
claus
parents: 59
diff changeset
    90
fieldList 
56
d0cb937cbcaa *** empty log message ***
claus
parents: 52
diff changeset
    91
    "return a list of names for the selectionlist. Leave hasMore as
d0cb937cbcaa *** empty log message ***
claus
parents: 52
diff changeset
    92
     true, if a '...' entry should be added."
18
850295468cac Initial revision
claus
parents:
diff changeset
    93
56
d0cb937cbcaa *** empty log message ***
claus
parents: 52
diff changeset
    94
    |aList n|
18
850295468cac Initial revision
claus
parents:
diff changeset
    95
850295468cac Initial revision
claus
parents:
diff changeset
    96
    n := inspectedObject size.
850295468cac Initial revision
claus
parents:
diff changeset
    97
    (n > nShown) ifTrue:[
52
7b48409ae088 *** empty log message ***
claus
parents: 29
diff changeset
    98
	n := nShown.
56
d0cb937cbcaa *** empty log message ***
claus
parents: 52
diff changeset
    99
	hasMore := true.
18
850295468cac Initial revision
claus
parents:
diff changeset
   100
    ].
59
d8ff572dd357 Text eliminated
claus
parents: 56
diff changeset
   101
    aList := OrderedCollection new:n+1.
d8ff572dd357 Text eliminated
claus
parents: 56
diff changeset
   102
    aList add:'self'.
18
850295468cac Initial revision
claus
parents:
diff changeset
   103
    1 to:n do:[:index |
52
7b48409ae088 *** empty log message ***
claus
parents: 29
diff changeset
   104
	aList add:(index printString)
18
850295468cac Initial revision
claus
parents:
diff changeset
   105
    ].
850295468cac Initial revision
claus
parents:
diff changeset
   106
    ^ aList
850295468cac Initial revision
claus
parents:
diff changeset
   107
! !
73
e332d9c71624 *** empty log message ***
claus
parents: 59
diff changeset
   108
e332d9c71624 *** empty log message ***
claus
parents: 59
diff changeset
   109
!OrderedCollectionInspectorView methodsFor:'user interaction'!
e332d9c71624 *** empty log message ***
claus
parents: 59
diff changeset
   110
e332d9c71624 *** empty log message ***
claus
parents: 59
diff changeset
   111
removeIndex
e332d9c71624 *** empty log message ***
claus
parents: 59
diff changeset
   112
    "remove selected item from the collection"
e332d9c71624 *** empty log message ***
claus
parents: 59
diff changeset
   113
e332d9c71624 *** empty log message ***
claus
parents: 59
diff changeset
   114
    selectedLine == 1 ifFalse:[
88
a38a2e87687b *** empty log message ***
claus
parents: 73
diff changeset
   115
	inspectedObject removeIndex:selectedLine -1.
a38a2e87687b *** empty log message ***
claus
parents: 73
diff changeset
   116
	selectedLine := nil.
a38a2e87687b *** empty log message ***
claus
parents: 73
diff changeset
   117
	inspectedObject changed.
a38a2e87687b *** empty log message ***
claus
parents: 73
diff changeset
   118
	self inspect:inspectedObject. "force list update"
73
e332d9c71624 *** empty log message ***
claus
parents: 59
diff changeset
   119
    ]
e332d9c71624 *** empty log message ***
claus
parents: 59
diff changeset
   120
!
e332d9c71624 *** empty log message ***
claus
parents: 59
diff changeset
   121
e332d9c71624 *** empty log message ***
claus
parents: 59
diff changeset
   122
valueAtLine:lineNr
e332d9c71624 *** empty log message ***
claus
parents: 59
diff changeset
   123
    "helper - return the value of the selected entry"
e332d9c71624 *** empty log message ***
claus
parents: 59
diff changeset
   124
e332d9c71624 *** empty log message ***
claus
parents: 59
diff changeset
   125
    |index|
e332d9c71624 *** empty log message ***
claus
parents: 59
diff changeset
   126
e332d9c71624 *** empty log message ***
claus
parents: 59
diff changeset
   127
    lineNr == 1 ifTrue:[
88
a38a2e87687b *** empty log message ***
claus
parents: 73
diff changeset
   128
	^ inspectedObject
73
e332d9c71624 *** empty log message ***
claus
parents: 59
diff changeset
   129
    ].
e332d9c71624 *** empty log message ***
claus
parents: 59
diff changeset
   130
    index := lineNr - 1.   "/ skip self
e332d9c71624 *** empty log message ***
claus
parents: 59
diff changeset
   131
    ^ inspectedObject at:index
e332d9c71624 *** empty log message ***
claus
parents: 59
diff changeset
   132
e332d9c71624 *** empty log message ***
claus
parents: 59
diff changeset
   133
!
e332d9c71624 *** empty log message ***
claus
parents: 59
diff changeset
   134
e332d9c71624 *** empty log message ***
claus
parents: 59
diff changeset
   135
doInspect
e332d9c71624 *** empty log message ***
claus
parents: 59
diff changeset
   136
    "user selected inspect-menu entry"
e332d9c71624 *** empty log message ***
claus
parents: 59
diff changeset
   137
e332d9c71624 *** empty log message ***
claus
parents: 59
diff changeset
   138
    selectedLine notNil ifTrue:[
88
a38a2e87687b *** empty log message ***
claus
parents: 73
diff changeset
   139
	(selectedLine == 1) ifTrue:[
a38a2e87687b *** empty log message ***
claus
parents: 73
diff changeset
   140
	    inspectedObject inspect
a38a2e87687b *** empty log message ***
claus
parents: 73
diff changeset
   141
	] ifFalse:[
a38a2e87687b *** empty log message ***
claus
parents: 73
diff changeset
   142
	    (inspectedObject at:selectedLine - 1) inspect
a38a2e87687b *** empty log message ***
claus
parents: 73
diff changeset
   143
	].
73
e332d9c71624 *** empty log message ***
claus
parents: 59
diff changeset
   144
    ]
e332d9c71624 *** empty log message ***
claus
parents: 59
diff changeset
   145
!
e332d9c71624 *** empty log message ***
claus
parents: 59
diff changeset
   146
e332d9c71624 *** empty log message ***
claus
parents: 59
diff changeset
   147
doAccept:theText
e332d9c71624 *** empty log message ***
claus
parents: 59
diff changeset
   148
    |value|
e332d9c71624 *** empty log message ***
claus
parents: 59
diff changeset
   149
e332d9c71624 *** empty log message ***
claus
parents: 59
diff changeset
   150
    value := Compiler evaluate:theText
88
a38a2e87687b *** empty log message ***
claus
parents: 73
diff changeset
   151
		      receiver:inspectedObject 
a38a2e87687b *** empty log message ***
claus
parents: 73
diff changeset
   152
		     notifying:workspace.
73
e332d9c71624 *** empty log message ***
claus
parents: 59
diff changeset
   153
e332d9c71624 *** empty log message ***
claus
parents: 59
diff changeset
   154
    selectedLine notNil ifTrue:[
88
a38a2e87687b *** empty log message ***
claus
parents: 73
diff changeset
   155
	selectedLine == 1 ifFalse:[
a38a2e87687b *** empty log message ***
claus
parents: 73
diff changeset
   156
	    inspectedObject at:selectedLine - 1 put:value.
a38a2e87687b *** empty log message ***
claus
parents: 73
diff changeset
   157
	    inspectedObject changed
a38a2e87687b *** empty log message ***
claus
parents: 73
diff changeset
   158
	]
73
e332d9c71624 *** empty log message ***
claus
parents: 59
diff changeset
   159
    ].
e332d9c71624 *** empty log message ***
claus
parents: 59
diff changeset
   160
! !