UIHelpTool.st
author tz
Mon, 30 Mar 1998 14:34:43 +0200
changeset 747 c76003b74d7b
parent 740 e7362f3ab5e5
child 750 9b705e31d38e
permissions -rw-r--r--
update other instances if clipboarding
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
156
b332d7117c40 added copyrights
Claus Gittinger <cg@exept.de>
parents: 151
diff changeset
     1
"
b332d7117c40 added copyrights
Claus Gittinger <cg@exept.de>
parents: 151
diff changeset
     2
 COPYRIGHT (c) 1995 by eXept Software AG
b332d7117c40 added copyrights
Claus Gittinger <cg@exept.de>
parents: 151
diff changeset
     3
              All Rights Reserved
b332d7117c40 added copyrights
Claus Gittinger <cg@exept.de>
parents: 151
diff changeset
     4
b332d7117c40 added copyrights
Claus Gittinger <cg@exept.de>
parents: 151
diff changeset
     5
 This software is furnished under a license and may be used
b332d7117c40 added copyrights
Claus Gittinger <cg@exept.de>
parents: 151
diff changeset
     6
 only in accordance with the terms of that license and with the
b332d7117c40 added copyrights
Claus Gittinger <cg@exept.de>
parents: 151
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
b332d7117c40 added copyrights
Claus Gittinger <cg@exept.de>
parents: 151
diff changeset
     8
 be provided or otherwise made available to, or used by, any
b332d7117c40 added copyrights
Claus Gittinger <cg@exept.de>
parents: 151
diff changeset
     9
 other person.  No title to or ownership of the software is
b332d7117c40 added copyrights
Claus Gittinger <cg@exept.de>
parents: 151
diff changeset
    10
 hereby transferred.
b332d7117c40 added copyrights
Claus Gittinger <cg@exept.de>
parents: 151
diff changeset
    11
"
b332d7117c40 added copyrights
Claus Gittinger <cg@exept.de>
parents: 151
diff changeset
    12
b332d7117c40 added copyrights
Claus Gittinger <cg@exept.de>
parents: 151
diff changeset
    13
b332d7117c40 added copyrights
Claus Gittinger <cg@exept.de>
parents: 151
diff changeset
    14
148
785417b6955d intitial checkin
ca
parents:
diff changeset
    15
ApplicationModel subclass:#UIHelpTool
740
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
    16
	instanceVariableNames:'specClass dictionary dictionaries listSelection modified
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
    17
		modifiedHolder maxCharsPerLine'
148
785417b6955d intitial checkin
ca
parents:
diff changeset
    18
	classVariableNames:''
785417b6955d intitial checkin
ca
parents:
diff changeset
    19
	poolDictionaries:''
785417b6955d intitial checkin
ca
parents:
diff changeset
    20
	category:'Interface-UIPainter'
785417b6955d intitial checkin
ca
parents:
diff changeset
    21
!
785417b6955d intitial checkin
ca
parents:
diff changeset
    22
785417b6955d intitial checkin
ca
parents:
diff changeset
    23
!UIHelpTool class methodsFor:'documentation'!
785417b6955d intitial checkin
ca
parents:
diff changeset
    24
156
b332d7117c40 added copyrights
Claus Gittinger <cg@exept.de>
parents: 151
diff changeset
    25
copyright
b332d7117c40 added copyrights
Claus Gittinger <cg@exept.de>
parents: 151
diff changeset
    26
"
b332d7117c40 added copyrights
Claus Gittinger <cg@exept.de>
parents: 151
diff changeset
    27
 COPYRIGHT (c) 1995 by eXept Software AG
b332d7117c40 added copyrights
Claus Gittinger <cg@exept.de>
parents: 151
diff changeset
    28
              All Rights Reserved
b332d7117c40 added copyrights
Claus Gittinger <cg@exept.de>
parents: 151
diff changeset
    29
b332d7117c40 added copyrights
Claus Gittinger <cg@exept.de>
parents: 151
diff changeset
    30
 This software is furnished under a license and may be used
b332d7117c40 added copyrights
Claus Gittinger <cg@exept.de>
parents: 151
diff changeset
    31
 only in accordance with the terms of that license and with the
b332d7117c40 added copyrights
Claus Gittinger <cg@exept.de>
parents: 151
diff changeset
    32
 inclusion of the above copyright notice.   This software may not
b332d7117c40 added copyrights
Claus Gittinger <cg@exept.de>
parents: 151
diff changeset
    33
 be provided or otherwise made available to, or used by, any
b332d7117c40 added copyrights
Claus Gittinger <cg@exept.de>
parents: 151
diff changeset
    34
 other person.  No title to or ownership of the software is
b332d7117c40 added copyrights
Claus Gittinger <cg@exept.de>
parents: 151
diff changeset
    35
 hereby transferred.
b332d7117c40 added copyrights
Claus Gittinger <cg@exept.de>
parents: 151
diff changeset
    36
"
b332d7117c40 added copyrights
Claus Gittinger <cg@exept.de>
parents: 151
diff changeset
    37
b332d7117c40 added copyrights
Claus Gittinger <cg@exept.de>
parents: 151
diff changeset
    38
b332d7117c40 added copyrights
Claus Gittinger <cg@exept.de>
parents: 151
diff changeset
    39
!
b332d7117c40 added copyrights
Claus Gittinger <cg@exept.de>
parents: 151
diff changeset
    40
148
785417b6955d intitial checkin
ca
parents:
diff changeset
    41
documentation
785417b6955d intitial checkin
ca
parents:
diff changeset
    42
"
740
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
    43
    The UIHelpTool allows you to define help dictionaries for the widgets in
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
    44
    applications. The tool are able to run stand alone or in other master 
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
    45
    applications like the GUI Painter and the Menu Editor.
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
    46
    If the application responds to the selector #showHelp:aHelpText for:aView,
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
    47
    this selector is called by the widget's view when the mouse cursor moves over. 
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
    48
    If the application does not responds to that selector, and the activeHelp mode
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
    49
    is enabled, an active help bubble is shown at the widget's view.
156
b332d7117c40 added copyrights
Claus Gittinger <cg@exept.de>
parents: 151
diff changeset
    50
b332d7117c40 added copyrights
Claus Gittinger <cg@exept.de>
parents: 151
diff changeset
    51
    [author:]
b332d7117c40 added copyrights
Claus Gittinger <cg@exept.de>
parents: 151
diff changeset
    52
        Claus Atzkern
148
785417b6955d intitial checkin
ca
parents:
diff changeset
    53
"
785417b6955d intitial checkin
ca
parents:
diff changeset
    54
! !
785417b6955d intitial checkin
ca
parents:
diff changeset
    55
286
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
    56
!UIHelpTool class methodsFor:'instance creation'!
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
    57
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
    58
openOnClass:aClass
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
    59
    "
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
    60
     UIHelpTool openOnClass:UIPainter
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
    61
    "
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
    62
740
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
    63
    UIHelpTool open helpSpecFrom:aClass
286
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
    64
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
    65
! !
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
    66
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
    67
!UIHelpTool class methodsFor:'constants'!
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
    68
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
    69
label
696
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
    70
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
    71
    ^'Help'
286
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
    72
! !
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
    73
151
ca
parents: 148
diff changeset
    74
!UIHelpTool class methodsFor:'help specs'!
ca
parents: 148
diff changeset
    75
ca
parents: 148
diff changeset
    76
helpSpec
740
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
    77
    "This resource specification was automatically generated
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
    78
     by the UIHelpTool of ST/X."
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
    79
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
    80
    "Do not manually edit this!! If it is corrupted,
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
    81
     the UIHelpTool may not be able to read the specification."
292
af69e3e025a9 an empty selection is specified by 0
ca
parents: 286
diff changeset
    82
172
10e8e0510baa helpSpec no longer under UIPainter
ca
parents: 156
diff changeset
    83
    "
740
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
    84
     UIHelpTool openOnClass:UIHelpTool    
292
af69e3e025a9 an empty selection is specified by 0
ca
parents: 286
diff changeset
    85
    "
af69e3e025a9 an empty selection is specified by 0
ca
parents: 286
diff changeset
    86
740
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
    87
    <resource: #help>
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
    88
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
    89
    ^super helpSpec addPairsFrom:#(
151
ca
parents: 148
diff changeset
    90
696
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
    91
#addHelpTextKey
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
    92
'Adds help text key.'
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
    93
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
    94
#currentHelpTexts
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
    95
'Selected help text key.'
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
    96
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
    97
#deleteHelpTextKey
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
    98
'Deletes the help text from the help spec.'
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
    99
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   100
#helpTextView
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   101
'Shows the help text.'
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   102
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   103
#listOfHelpSpecClasses
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   104
'List of the classes where help specs can be/are implemented.'
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   105
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   106
#listOfHelpTexts
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   107
'List of the help text keys.'
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   108
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   109
#removeHelpTextKey
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   110
'Removes the help text key from the widget.'
172
10e8e0510baa helpSpec no longer under UIPainter
ca
parents: 156
diff changeset
   111
10e8e0510baa helpSpec no longer under UIPainter
ca
parents: 156
diff changeset
   112
)
151
ca
parents: 148
diff changeset
   113
! !
ca
parents: 148
diff changeset
   114
148
785417b6955d intitial checkin
ca
parents:
diff changeset
   115
!UIHelpTool class methodsFor:'interface specs'!
785417b6955d intitial checkin
ca
parents:
diff changeset
   116
785417b6955d intitial checkin
ca
parents:
diff changeset
   117
windowSpec
740
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   118
    "This resource specification was automatically generated
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   119
     by the UIPainter of ST/X."
148
785417b6955d intitial checkin
ca
parents:
diff changeset
   120
740
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   121
    "Do not manually edit this!! If it is corrupted,
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   122
     the UIPainter may not be able to read the specification."
148
785417b6955d intitial checkin
ca
parents:
diff changeset
   123
785417b6955d intitial checkin
ca
parents:
diff changeset
   124
    "
151
ca
parents: 148
diff changeset
   125
     UIPainter new openOnClass:UIHelpTool andSelector:#windowSpec
ca
parents: 148
diff changeset
   126
     UIHelpTool new openInterface:#windowSpec
740
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   127
     UIHelpTool open
148
785417b6955d intitial checkin
ca
parents:
diff changeset
   128
    "
785417b6955d intitial checkin
ca
parents:
diff changeset
   129
785417b6955d intitial checkin
ca
parents:
diff changeset
   130
    <resource: #canvas>
785417b6955d intitial checkin
ca
parents:
diff changeset
   131
785417b6955d intitial checkin
ca
parents:
diff changeset
   132
    ^
785417b6955d intitial checkin
ca
parents:
diff changeset
   133
     
785417b6955d intitial checkin
ca
parents:
diff changeset
   134
       #(#FullSpec
696
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   135
          #window: 
148
785417b6955d intitial checkin
ca
parents:
diff changeset
   136
           #(#WindowSpec
740
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   137
              #name: 'Help Tool'
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   138
              #layout: #(#LayoutFrame 140 0 231 0 425 0 501 0)
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   139
              #label: 'Help Tool'
696
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   140
              #min: #(#Point 10 10)
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   141
              #max: #(#Point 1160 870)
740
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   142
              #bounds: #(#Rectangle 140 231 426 502)
696
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   143
              #usePreferredExtent: false
148
785417b6955d intitial checkin
ca
parents:
diff changeset
   144
          )
696
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   145
          #component: 
148
785417b6955d intitial checkin
ca
parents:
diff changeset
   146
           #(#SpecCollection
696
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   147
              #collection: 
148
785417b6955d intitial checkin
ca
parents:
diff changeset
   148
               #(
696
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   149
                 #(#SequenceViewSpec
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   150
                    #name: 'listOfHelpKeysView'
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   151
                    #layout: #(#LayoutFrame 3 0 2 0 -1 0.5 -1 0.5)
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   152
                    #activeHelpKey: #listOfHelpTexts
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   153
                    #tabable: true
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   154
                    #model: #listModel
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   155
                    #hasHorizontalScrollBar: true
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   156
                    #hasVerticalScrollBar: true
700
2aae4f3b6526 supports merging into existing help specs
tz
parents: 696
diff changeset
   157
                    #miniScrollerHorizontal: true
696
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   158
                    #useIndex: false
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   159
                    #sequenceList: #listChannel
286
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   160
                )
740
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   161
                 #(#ActionButtonSpec
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   162
                    #name: 'AddButton'
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   163
                    #layout: #(#LayoutFrame 2 0.5 2 0 -1 0.67 26 0)
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   164
                    #activeHelpKey: #addHelpTextKey
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   165
                    #label: 'Add'
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   166
                    #tabable: true
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   167
                    #model: #add
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   168
                )
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   169
                 #(#ActionButtonSpec
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   170
                    #name: 'RemoveButton'
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   171
                    #layout: #(#LayoutFrame 1 0.67 2 0 -1 0.83 26 0)
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   172
                    #activeHelpKey: #removeHelpTextKey
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   173
                    #label: 'Remove'
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   174
                    #tabable: true
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   175
                    #model: #remove
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   176
                )
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   177
                 #(#ActionButtonSpec
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   178
                    #name: 'DeleteButton'
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   179
                    #layout: #(#LayoutFrame 1 0.83 2 0 -2 1 26 0)
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   180
                    #activeHelpKey: #deleteHelpTextKey
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   181
                    #label: 'Delete'
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   182
                    #tabable: true
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   183
                    #model: #delete
696
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   184
                )
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   185
                 #(#InputFieldSpec
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   186
                    #name: 'helpKeyInputField'
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   187
                    #layout: #(#LayoutFrame 1 0.5 29 0 -3 1 51 0)
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   188
                    #activeHelpKey: #currentHelpTexts
740
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   189
                    #tabable: true
696
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   190
                    #model: #listModel
722
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   191
                    #immediateAccept: false
696
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   192
                )
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   193
                 #(#SequenceViewSpec
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   194
                    #name: 'listOfHelpSpecClassesView'
740
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   195
                    #layout: #(#LayoutFrame 1 0.5 54 0 -3 1 -1 0.5)
696
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   196
                    #activeHelpKey: #listOfHelpSpecClasses
740
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   197
                    #tabable: true
696
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   198
                    #model: #selectionOfHelpSpecClass
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   199
                    #hasHorizontalScrollBar: true
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   200
                    #hasVerticalScrollBar: true
700
2aae4f3b6526 supports merging into existing help specs
tz
parents: 696
diff changeset
   201
                    #miniScrollerHorizontal: true
2aae4f3b6526 supports merging into existing help specs
tz
parents: 696
diff changeset
   202
                    #miniScrollerVertical: true
696
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   203
                    #valueChangeSelector: #helpSpecClassSelected
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   204
                    #useIndex: false
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   205
                    #sequenceList: #listOfHelpSpecClasses
286
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   206
                )
148
785417b6955d intitial checkin
ca
parents:
diff changeset
   207
                 #(#TextEditorSpec
696
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   208
                    #name: 'helpTextView'
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   209
                    #layout: #(#LayoutFrame 3 0.0 1 0.5 -1 1.0 -3 1.0)
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   210
                    #activeHelpKey: #helpTextView
740
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   211
                    #tabable: true
696
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   212
                    #hasHorizontalScrollBar: true
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   213
                    #hasVerticalScrollBar: true
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   214
                    #miniScrollerHorizontal: true
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   215
                    #miniScrollerVertical: true
148
785417b6955d intitial checkin
ca
parents:
diff changeset
   216
                )
785417b6955d intitial checkin
ca
parents:
diff changeset
   217
              )
785417b6955d intitial checkin
ca
parents:
diff changeset
   218
          )
785417b6955d intitial checkin
ca
parents:
diff changeset
   219
      )
696
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   220
!
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   221
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   222
windowSpecForStandAlone
740
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   223
    "This resource specification was automatically generated
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   224
     by the UIPainter of ST/X."
696
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   225
740
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   226
    "Do not manually edit this!! If it is corrupted,
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   227
     the UIPainter may not be able to read the specification."
696
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   228
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   229
    "
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   230
     UIPainter new openOnClass:UIHelpTool andSelector:#windowSpecForStandAlone
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   231
     UIHelpTool new openInterface:#windowSpecForStandAlone
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   232
    "
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   233
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   234
    <resource: #canvas>
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   235
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   236
    ^
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   237
     
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   238
       #(#FullSpec
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   239
          #window: 
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   240
           #(#WindowSpec
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   241
              #name: 'Help Tool'
740
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   242
              #layout: #(#LayoutFrame 534 0 276 0 1033 0 675 0)
696
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   243
              #label: 'Help Tool'
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   244
              #min: #(#Point 10 10)
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   245
              #max: #(#Point 1160 870)
740
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   246
              #bounds: #(#Rectangle 534 276 1034 676)
696
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   247
              #menu: #menu
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   248
              #usePreferredExtent: false
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   249
          )
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   250
          #component: 
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   251
           #(#SpecCollection
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   252
              #collection: 
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   253
               #(
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   254
                 #(#UISubSpecification
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   255
                    #name: 'UISubSpecification1'
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   256
                    #layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   257
                    #minorKey: #windowSpec
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   258
                )
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   259
              )
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   260
          )
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   261
      )
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   262
! !
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   263
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   264
!UIHelpTool class methodsFor:'menu specs'!
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   265
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   266
menu
740
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   267
    "This resource specification was automatically generated
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   268
     by the MenuEditor of ST/X."
696
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   269
740
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   270
    "Do not manually edit this!! If it is corrupted,
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   271
     the MenuEditor may not be able to read the specification."
696
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   272
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   273
    "
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   274
     MenuEditor new openOnClass:UIHelpTool andSelector:#menu
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   275
     (Menu new fromLiteralArrayEncoding:(UIHelpTool menu)) startUp
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   276
    "
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   277
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   278
    <resource: #menu>
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   279
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   280
    ^
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   281
     
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   282
       #(#Menu
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   283
          
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   284
           #(
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   285
             #(#MenuItem
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   286
                #label: 'File'
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   287
                #submenu: 
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   288
                 #(#Menu
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   289
                    
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   290
                     #(
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   291
                       #(#MenuItem
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   292
                          #label: 'Reload'
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   293
                          #value: #doReload
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   294
                      )
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   295
                       #(#MenuItem
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   296
                          #label: '-'
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   297
                      )
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   298
                       #(#MenuItem
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   299
                          #label: 'Save'
722
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   300
                          #value: #doSave
696
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   301
                      )
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   302
                       #(#MenuItem
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   303
                          #label: '-'
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   304
                      )
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   305
                       #(#MenuItem
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   306
                          #label: 'Define Class...'
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   307
                          #value: #doFromClass
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   308
                      )
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   309
                       #(#MenuItem
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   310
                          #label: '-'
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   311
                      )
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   312
                       #(#MenuItem
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   313
                          #label: 'Exit'
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   314
                          #value: #closeRequest
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   315
                      )
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   316
                    ) nil
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   317
                    nil
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   318
                )
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   319
            )
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   320
          ) nil
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   321
          nil
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   322
      )
148
785417b6955d intitial checkin
ca
parents:
diff changeset
   323
! !
785417b6955d intitial checkin
ca
parents:
diff changeset
   324
785417b6955d intitial checkin
ca
parents:
diff changeset
   325
!UIHelpTool methodsFor:'accessing'!
785417b6955d intitial checkin
ca
parents:
diff changeset
   326
710
8c968790c885 use same help dict if started from the gui painter
tz
parents: 704
diff changeset
   327
dictionaries
722
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   328
    "get the dictionary of the help dictionaries of the classes having help specs
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   329
    "
710
8c968790c885 use same help dict if started from the gui painter
tz
parents: 704
diff changeset
   330
    ^dictionaries
8c968790c885 use same help dict if started from the gui painter
tz
parents: 704
diff changeset
   331
!
8c968790c885 use same help dict if started from the gui painter
tz
parents: 704
diff changeset
   332
8c968790c885 use same help dict if started from the gui painter
tz
parents: 704
diff changeset
   333
dictionaries:aDictionaryOfDictionaries
722
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   334
    "set a dictionary of the help dictionaries of the classes having help specs
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   335
    "
710
8c968790c885 use same help dict if started from the gui painter
tz
parents: 704
diff changeset
   336
    (dictionaries := aDictionaryOfDictionaries) isNil ifTrue:[
8c968790c885 use same help dict if started from the gui painter
tz
parents: 704
diff changeset
   337
        dictionaries := Dictionary new.
8c968790c885 use same help dict if started from the gui painter
tz
parents: 704
diff changeset
   338
    ].
715
7eebac822985 modified bug fixed
tz
parents: 710
diff changeset
   339
    self updateList.
710
8c968790c885 use same help dict if started from the gui painter
tz
parents: 704
diff changeset
   340
!
8c968790c885 use same help dict if started from the gui painter
tz
parents: 704
diff changeset
   341
151
ca
parents: 148
diff changeset
   342
dictionary
722
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   343
    "get the dictionary of the selected class
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   344
    "
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   345
    ^dictionary
710
8c968790c885 use same help dict if started from the gui painter
tz
parents: 704
diff changeset
   346
!
151
ca
parents: 148
diff changeset
   347
ca
parents: 148
diff changeset
   348
dictionary:aDictionary
722
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   349
    "set dictionary of the selected class
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   350
    "
286
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   351
    (dictionary := aDictionary) isNil ifTrue:[
700
2aae4f3b6526 supports merging into existing help specs
tz
parents: 696
diff changeset
   352
        dictionary := Dictionary new.
286
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   353
    ].
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   354
    self updateList
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   355
!
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   356
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   357
helpKey
722
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   358
    "get the help key of selected help text
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   359
    "
286
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   360
    listSelection size ~~ 0 ifTrue:[
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   361
        ^ listSelection asSymbol
151
ca
parents: 148
diff changeset
   362
    ].
286
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   363
    ^ nil
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   364
!
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   365
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   366
helpKey:aKey
722
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   367
    "set the help key into the selection channel in order to show the help text
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   368
    "
286
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   369
    |key|
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   370
    aKey size ~~ 0 ifTrue:[
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   371
        key := aKey asString
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   372
    ].
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   373
    self listModel value:key
459
fb5b5ecf7e86 set modified if help text has changed
tz
parents: 456
diff changeset
   374
151
ca
parents: 148
diff changeset
   375
!
ca
parents: 148
diff changeset
   376
196
56f63eb42a34 generate help specs
ca
parents: 172
diff changeset
   377
helpSpecFrom:aClass
722
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   378
    "read the help dictionary from aClass and find remaining classes 
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   379
     'between' aClass and ApplicationModel 
196
56f63eb42a34 generate help specs
ca
parents: 172
diff changeset
   380
    "
286
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   381
    |help|
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   382
740
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   383
    modified := false.
700
2aae4f3b6526 supports merging into existing help specs
tz
parents: 696
diff changeset
   384
    specClass notNil
2aae4f3b6526 supports merging into existing help specs
tz
parents: 696
diff changeset
   385
    ifTrue:
2aae4f3b6526 supports merging into existing help specs
tz
parents: 696
diff changeset
   386
    [   
2aae4f3b6526 supports merging into existing help specs
tz
parents: 696
diff changeset
   387
        dictionary   := Dictionary new.
2aae4f3b6526 supports merging into existing help specs
tz
parents: 696
diff changeset
   388
        dictionaries := Dictionary new.
2aae4f3b6526 supports merging into existing help specs
tz
parents: 696
diff changeset
   389
    ].
369
9d34f1ff4d29 support of lineFeed charaters
ca
parents: 354
diff changeset
   390
    specClass  := self applicationClassAssociatedWith:aClass.
700
2aae4f3b6526 supports merging into existing help specs
tz
parents: 696
diff changeset
   391
    (specClass isClass and: [specClass isLoaded])
696
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   392
    ifTrue: 
700
2aae4f3b6526 supports merging into existing help specs
tz
parents: 696
diff changeset
   393
    [                                               
2aae4f3b6526 supports merging into existing help specs
tz
parents: 696
diff changeset
   394
        (specClass class implements:#helpSpec) ifFalse:[
2aae4f3b6526 supports merging into existing help specs
tz
parents: 696
diff changeset
   395
            dictionaries at: specClass name put: dictionary 
2aae4f3b6526 supports merging into existing help specs
tz
parents: 696
diff changeset
   396
        ].
717
fb90f37268be bug fixed, if window spec in non application model class implemented
tz
parents: 715
diff changeset
   397
        self listOfHelpSpecClasses contents:  (specClass withAllSuperclasses reverse collect: [:cls| cls name]).
fb90f37268be bug fixed, if window spec in non application model class implemented
tz
parents: 715
diff changeset
   398
        (self listOfHelpSpecClasses includes: #ApplicationModel)
fb90f37268be bug fixed, if window spec in non application model class implemented
tz
parents: 715
diff changeset
   399
            ifTrue: [self listOfHelpSpecClasses removeAll: (ApplicationModel withAllSuperclasses collect: [:cls| cls name])].
696
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   400
        self selectionOfHelpSpecClass value: specClass name. 
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   401
        (builder componentAt: #listOfHelpSpecClassesView) selection: 
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   402
                (self listOfHelpSpecClasses value indexOf: specClass name).
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   403
        self helpSpecClassSelected.
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   404
    ].
700
2aae4f3b6526 supports merging into existing help specs
tz
parents: 696
diff changeset
   405
696
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   406
    self updateList
196
56f63eb42a34 generate help specs
ca
parents: 172
diff changeset
   407
!
56f63eb42a34 generate help specs
ca
parents: 172
diff changeset
   408
740
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   409
modified
722
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   410
    "answer whether the help tool was modified
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   411
    "
740
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   412
    ^modified
700
2aae4f3b6526 supports merging into existing help specs
tz
parents: 696
diff changeset
   413
!
2aae4f3b6526 supports merging into existing help specs
tz
parents: 696
diff changeset
   414
740
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   415
modified: aBoolean
722
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   416
    "set the help tool as modified
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   417
    "
740
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   418
    modified := aBoolean
700
2aae4f3b6526 supports merging into existing help specs
tz
parents: 696
diff changeset
   419
!
2aae4f3b6526 supports merging into existing help specs
tz
parents: 696
diff changeset
   420
286
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   421
modifiedHolder:aValueHolder
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   422
    "set the value holder set to true in case of modifying attributes
148
785417b6955d intitial checkin
ca
parents:
diff changeset
   423
    "
286
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   424
    modifiedHolder notNil ifTrue:[
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   425
        modifiedHolder removeDependent:self. 
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   426
    ].
148
785417b6955d intitial checkin
ca
parents:
diff changeset
   427
286
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   428
    (modifiedHolder := aValueHolder) notNil ifTrue:[
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   429
        modifiedHolder addDependent:self.
459
fb5b5ecf7e86 set modified if help text has changed
tz
parents: 456
diff changeset
   430
fb5b5ecf7e86 set modified if help text has changed
tz
parents: 456
diff changeset
   431
        self editTextView notNil ifTrue: [
fb5b5ecf7e86 set modified if help text has changed
tz
parents: 456
diff changeset
   432
            self editTextView modifiedChannel onChangeSend:#value to:[
fb5b5ecf7e86 set modified if help text has changed
tz
parents: 456
diff changeset
   433
                modifiedHolder notNil ifTrue:[
fb5b5ecf7e86 set modified if help text has changed
tz
parents: 456
diff changeset
   434
                    self editTextView modifiedChannel value ifTrue:[
fb5b5ecf7e86 set modified if help text has changed
tz
parents: 456
diff changeset
   435
                        modifiedHolder value:true
fb5b5ecf7e86 set modified if help text has changed
tz
parents: 456
diff changeset
   436
                    ]
fb5b5ecf7e86 set modified if help text has changed
tz
parents: 456
diff changeset
   437
                ]
fb5b5ecf7e86 set modified if help text has changed
tz
parents: 456
diff changeset
   438
            ]
fb5b5ecf7e86 set modified if help text has changed
tz
parents: 456
diff changeset
   439
        ]
fb5b5ecf7e86 set modified if help text has changed
tz
parents: 456
diff changeset
   440
    ]
286
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   441
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   442
715
7eebac822985 modified bug fixed
tz
parents: 710
diff changeset
   443
!
7eebac822985 modified bug fixed
tz
parents: 710
diff changeset
   444
7eebac822985 modified bug fixed
tz
parents: 710
diff changeset
   445
specClass
722
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   446
    "get the class on which the help tool works
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   447
    "
715
7eebac822985 modified bug fixed
tz
parents: 710
diff changeset
   448
    ^specClass
354
a6de8821d3bf add & remove popUpMenu
Claus Gittinger <cg@exept.de>
parents: 339
diff changeset
   449
! !
a6de8821d3bf add & remove popUpMenu
Claus Gittinger <cg@exept.de>
parents: 339
diff changeset
   450
148
785417b6955d intitial checkin
ca
parents:
diff changeset
   451
!UIHelpTool methodsFor:'aspects'!
785417b6955d intitial checkin
ca
parents:
diff changeset
   452
785417b6955d intitial checkin
ca
parents:
diff changeset
   453
listChannel
722
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   454
    "get the value holder of the help texts
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   455
    "
148
785417b6955d intitial checkin
ca
parents:
diff changeset
   456
    |holder|
785417b6955d intitial checkin
ca
parents:
diff changeset
   457
    (holder := builder bindingAt:#listChannel) isNil ifTrue:[
354
a6de8821d3bf add & remove popUpMenu
Claus Gittinger <cg@exept.de>
parents: 339
diff changeset
   458
        builder aspectAt:#listChannel put:(holder :=  OrderedCollection new asValue).
148
785417b6955d intitial checkin
ca
parents:
diff changeset
   459
    ].
785417b6955d intitial checkin
ca
parents:
diff changeset
   460
    ^ holder
785417b6955d intitial checkin
ca
parents:
diff changeset
   461
!
785417b6955d intitial checkin
ca
parents:
diff changeset
   462
286
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   463
listModel
722
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   464
    "get the value holder of the help key
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   465
    "
148
785417b6955d intitial checkin
ca
parents:
diff changeset
   466
    |holder|
286
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   467
    (holder := builder bindingAt:#listModel) isNil ifTrue:[
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   468
        holder := AspectAdaptor new subject:self; forAspect:#listSelection.
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   469
        builder aspectAt:#listModel put:holder.
148
785417b6955d intitial checkin
ca
parents:
diff changeset
   470
    ].
785417b6955d intitial checkin
ca
parents:
diff changeset
   471
    ^ holder
696
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   472
!
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   473
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   474
listOfHelpSpecClasses
722
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   475
    "get the value holder of the specClass and its superclasses 
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   476
     which are subclasses of ApplicationModel
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   477
    "
696
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   478
    |holder|
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   479
    (holder := builder bindingAt:#listOfHelpSpecClasses) isNil ifTrue:[
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   480
        builder aspectAt:#listOfHelpSpecClasses put: (holder := List new)
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   481
    ].
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   482
    ^ holder
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   483
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   484
!
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   485
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   486
selectionOfHelpSpecClass
722
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   487
    "get the value holder of the selected help spec class
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   488
    "
696
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   489
    |holder|
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   490
    (holder := builder bindingAt:#selectionOfHelpSpecClass) isNil ifTrue:[
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   491
        builder aspectAt:#selectionOfHelpSpecClass put: (holder := ValueHolder new)
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   492
    ].
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   493
    ^ holder
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   494
148
785417b6955d intitial checkin
ca
parents:
diff changeset
   495
! !
785417b6955d intitial checkin
ca
parents:
diff changeset
   496
740
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   497
!UIHelpTool methodsFor:'callbacks'!
148
785417b6955d intitial checkin
ca
parents:
diff changeset
   498
740
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   499
helpSpecClassSelected
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   500
    "extract the help dictionary from the selected class and make it current
148
785417b6955d intitial checkin
ca
parents:
diff changeset
   501
    "
740
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   502
    |clsName|
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   503
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   504
    clsName := self selectionOfHelpSpecClass value.
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   505
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   506
    (dictionary := dictionaries at: clsName ifAbsent: nil) isNil
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   507
    ifTrue:
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   508
    [        
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   509
        dictionary := dictionaries at: clsName put: (self extractHelpSpecForClass: (Smalltalk at: clsName))
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   510
    ].
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   511
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   512
    self updateList.
722
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   513
740
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   514
    listSelection notNil
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   515
    ifTrue: 
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   516
    [
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   517
        (dictionary keys includes: listSelection asSymbol)
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   518
            ifTrue: [(builder componentAt: #listOfHelpKeysView) selection: 
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   519
                     (self listChannel value indexOf: (builder componentAt: #helpKeyInputField) contents)]
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   520
            ifFalse: [(builder componentAt: #listOfHelpKeysView) selection: nil].
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   521
    ].
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   522
    listSelection notNil
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   523
    ifTrue: 
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   524
    [
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   525
        self editTextView contents: (dictionary at: listSelection asSymbol ifAbsent: '')
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   526
    ]
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   527
369
9d34f1ff4d29 support of lineFeed charaters
ca
parents: 354
diff changeset
   528
286
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   529
! !
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   530
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   531
!UIHelpTool methodsFor:'private'!
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   532
740
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   533
applicationClassAssociatedWith:aClass
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   534
    "get application class keeping the associated help text or nil
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   535
    "
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   536
    |cls|
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   537
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   538
    ((cls := self resolveName:aClass) notNil and:[cls includesBehavior:UISpecification]) ifTrue:[
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   539
        ^UISpecificationTool
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   540
    ].
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   541
    ^cls
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   542
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   543
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   544
!
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   545
286
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   546
editTextView
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   547
    "get the editTextView or nil.
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   548
    "
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   549
    |view|
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   550
696
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   551
    (view := builder componentAt:#helpTextView) notNil ifTrue:[
286
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   552
        view := view scrolledView.
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   553
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   554
        view acceptAction isNil ifTrue:[
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   555
            view acceptAction:[:aList| self accept ].
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   556
        ].
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   557
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   558
        view left ~~ 0 ifTrue:[
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   559
            (maxCharsPerLine := view extent x // view font width) < 10 ifTrue:[
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   560
                maxCharsPerLine := nil
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   561
            ]
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   562
        ].
454
8b016ffd83ce set modified if help text accepted
tz
parents: 393
diff changeset
   563
    ].       
286
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   564
    ^ view
696
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   565
!
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   566
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   567
extractHelpSpecForClass: aClass
722
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   568
    "extract the help dictionary of aClass, it current and return it
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   569
    "
696
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   570
    |helpSpecSuperClass superHelpSpecKeys helpSpec|
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   571
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   572
    ((aClass class implements: #helpSpec)
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   573
    and: [(helpSpecSuperClass := aClass allSuperclasses detect: [:cls| cls class implements: #helpSpec] ifNone: nil) notNil])
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   574
    ifTrue:
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   575
    [                  
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   576
        superHelpSpecKeys := helpSpecSuperClass helpSpec keys.
700
2aae4f3b6526 supports merging into existing help specs
tz
parents: 696
diff changeset
   577
        helpSpec := Dictionary new.
696
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   578
        aClass helpSpec associationsDo:
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   579
        [:asso|
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   580
            (superHelpSpecKeys includes: asso key) ifFalse: [helpSpec at: asso key put: asso value]
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   581
        ].          
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   582
        ^dictionary := helpSpec
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   583
    ].
700
2aae4f3b6526 supports merging into existing help specs
tz
parents: 696
diff changeset
   584
    ^dictionary := Dictionary new 
696
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   585
!
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   586
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   587
findHelpSpecForKey: aHelpKey
722
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   588
    "find the help spec class including aHelpKey in its help dictionary and make it current
696
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   589
    "
700
2aae4f3b6526 supports merging into existing help specs
tz
parents: 696
diff changeset
   590
    |dictTemp helpSpecClass superHelpSpecKeys helpSpec|
696
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   591
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   592
    aHelpKey isNil ifTrue: [^nil].
700
2aae4f3b6526 supports merging into existing help specs
tz
parents: 696
diff changeset
   593
    dictTemp := dictionary.
696
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   594
    self listOfHelpSpecClasses value do:
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   595
    [:clsName|            
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   596
        (dictionary := dictionaries at: clsName ifAbsent: nil) isNil
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   597
        ifTrue:
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   598
        [        
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   599
            dictionary := dictionaries at: clsName put: (self extractHelpSpecForClass: (Smalltalk at: clsName))
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   600
        ].
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   601
        (dictionary includesKey: aHelpKey asSymbol)  
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   602
        ifTrue:
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   603
        [            
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   604
            self updateList.
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   605
            ^(builder componentAt: #listOfHelpSpecClassesView) selection: 
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   606
                (self listOfHelpSpecClasses value indexOf: clsName).
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   607
        ]
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   608
    ].
700
2aae4f3b6526 supports merging into existing help specs
tz
parents: 696
diff changeset
   609
    dictionary := dictTemp
696
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   610
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   611
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   612
!
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   613
740
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   614
installHelpSpecOnClass:aClass
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   615
    "save the help dicts in aClass which is subclass of ApplicationModel"
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   616
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   617
    |cls src helpSpec|
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   618
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   619
    cls := self applicationClassAssociatedWith:aClass.
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   620
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   621
    cls isNil ifTrue:[
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   622
        self information:'No application class defined!!'.
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   623
        ^nil
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   624
    ].
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   625
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   626
    (cls isSubclassOf: ApplicationModel) ifFalse:[
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   627
        self information: 'Cannot save help spec into class ', cls name asBoldText, ',\because it is not a subclass of ApplicationModel!!' withCRs.
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   628
        ^nil
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   629
    ].
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   630
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   631
    helpSpec := dictionaries 
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   632
        at: cls name 
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   633
        ifAbsent: [specClass notNil 
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   634
            ifTrue:  [dictionaries at: aClass put: (self extractHelpSpecForClass: (Smalltalk at: aClass))]
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   635
            ifFalse: [dictionary size > 0 ifTrue: [dictionary] ifFalse: [Dictionary new]]].
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   636
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   637
    (cls class implements: #helpSpec) 
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   638
    ifTrue: 
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   639
    [
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   640
        |superclassHelpKeys implementedHelpSpec hasChanged|
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   641
        implementedHelpSpec := Dictionary new.
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   642
        superclassHelpKeys := (cls superclass respondsTo: #helpSpec)
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   643
            ifTrue:  [cls superclass helpSpec keys]
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   644
            ifFalse: [Array new].
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   645
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   646
        cls helpSpec associationsDo: [:h| (superclassHelpKeys includes: h key) 
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   647
            ifFalse: [implementedHelpSpec at: h key put: h value]].
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   648
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   649
        hasChanged := false.
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   650
        implementedHelpSpec associationsDo: [:h| (helpSpec            includesAssociation: h) ifFalse: [hasChanged := true]].
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   651
        helpSpec            associationsDo: [:h| (implementedHelpSpec includesAssociation: h) ifFalse: [hasChanged := true]].
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   652
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   653
        (implementedHelpSpec notEmpty and: [hasChanged and:
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   654
        [DialogBox confirm: 'Class ', cls name asBoldText, ' already implements\a help spec!!\\Do only replace, if you have removed\help keys in an existing help spec.\' withCRs yesLabel: ' Merge ' noLabel: ' Replace ']])
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   655
        ifTrue:
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   656
        [      
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   657
             implementedHelpSpec associationsDo: [:h| (helpSpec includesKey: h key) 
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   658
                ifFalse: [helpSpec at: h key put: h value]].
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   659
        ]
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   660
    ].
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   661
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   662
    helpSpec isEmpty ifTrue:[
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   663
        ^(cls superclass respondsTo: #helpSpec) ifTrue: [cls class removeSelector: #helpSpec].
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   664
    ].
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   665
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   666
    src  := '' writeStream.
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   667
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   668
    src nextPutAll:
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   669
        'helpSpec\' withCRs,
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   670
        (ResourceSpecEditor codeGenerationCommentForClass: UIHelpTool) withCRs,
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   671
    '\\' withCRs,
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   672
    '    "\' withCRs,
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   673
    '     UIHelpTool openOnClass:', cls name asString ,'    
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   674
    "
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   675
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   676
    <resource: #help>
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   677
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   678
    ^super helpSpec addPairsFrom:#(
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   679
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   680
'.
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   681
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   682
    helpSpec keys asSortedCollection
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   683
    do:[:key |
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   684
        |txt t|
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   685
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   686
        txt := helpSpec at:key.
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   687
        src nextPutLine:key storeString.
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   688
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   689
        t := txt asString replaceAll:(Character cr) with:(Character space).
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   690
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   691
        (t endsWith:Character space) ifTrue:[
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   692
            t := t copyWithoutLast:1
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   693
        ].
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   694
        src nextPutLine:t storeString; cr.
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   695
    ].
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   696
    src nextPutLine:')'.
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   697
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   698
    Compiler 
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   699
        compile:(src contents)
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   700
        forClass:cls class 
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   701
        inCategory:'help specs'.
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   702
!
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   703
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   704
installHelpSpecsOnClass:aClass
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   705
    "save the help dicts on aClass and its superclasses which are subclasses of ApplicationModel
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   706
    "
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   707
    |cls helpSpecClasses|
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   708
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   709
    modified ifFalse:[
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   710
        ^nil
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   711
    ].
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   712
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   713
    cls := aClass isClass ifTrue: [aClass name] ifFalse: [aClass].
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   714
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   715
    (helpSpecClasses := self listOfHelpSpecClasses value) notNil
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   716
    ifTrue:
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   717
    [     
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   718
        (helpSpecClasses includes: cls) ifFalse: [helpSpecClasses add: cls].
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   719
        helpSpecClasses do: [:clsName| (self installHelpSpecOnClass: clsName) isNil ifTrue: [^modified := false]].
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   720
    ]
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   721
    ifFalse:
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   722
    [
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   723
        self installHelpSpecOnClass: cls
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   724
    ].
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   725
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   726
    modified := false.
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   727
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   728
!
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   729
696
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   730
updateList
722
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   731
    "update the list channel from dictionary
696
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   732
    "
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   733
    self listChannel value: dictionary keys asSortedCollection
286
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   734
! !
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   735
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   736
!UIHelpTool methodsFor:'selection'!
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   737
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   738
listSelection
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   739
    "returns current selection
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   740
    "
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   741
    ^ listSelection
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   742
!
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   743
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   744
listSelection:aSelection
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   745
    "current selection changed
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   746
    "
299
62009576ca33 checkin from browser
ca
parents: 292
diff changeset
   747
    |txt view sel|
286
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   748
722
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   749
    aSelection isNil 
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   750
        ifTrue: [(builder componentAt: #listOfHelpKeysView) selection: nil]
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   751
        ifFalse: [(dictionary includesKey: aSelection asSymbol) ifFalse: [self findHelpSpecForKey: aSelection]].
696
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   752
286
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   753
    aSelection isNumber ifTrue:[
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   754
        aSelection ~~ 0 ifTrue:[
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   755
            sel := self listChannel value at:aSelection
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   756
        ]
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   757
    ] ifFalse:[
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   758
        aSelection size ~~ 0 ifTrue:[
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   759
            sel := aSelection withoutSeparators.
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   760
            sel size == 0 ifTrue:[
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   761
                sel := nil
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   762
            ]
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   763
        ]
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   764
    ].
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   765
299
62009576ca33 checkin from browser
ca
parents: 292
diff changeset
   766
    listSelection = sel ifFalse:[
62009576ca33 checkin from browser
ca
parents: 292
diff changeset
   767
        listSelection := sel.
286
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   768
299
62009576ca33 checkin from browser
ca
parents: 292
diff changeset
   769
        modifiedHolder notNil ifTrue:[
62009576ca33 checkin from browser
ca
parents: 292
diff changeset
   770
            modifiedHolder value:true.
62009576ca33 checkin from browser
ca
parents: 292
diff changeset
   771
        ].
286
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   772
299
62009576ca33 checkin from browser
ca
parents: 292
diff changeset
   773
        (view := self editTextView) notNil ifTrue:[
62009576ca33 checkin from browser
ca
parents: 292
diff changeset
   774
            listSelection notNil ifTrue:[
62009576ca33 checkin from browser
ca
parents: 292
diff changeset
   775
                txt := dictionary at:(listSelection asSymbol) ifAbsent:nil.
286
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   776
299
62009576ca33 checkin from browser
ca
parents: 292
diff changeset
   777
                (txt isNil or:[maxCharsPerLine isNil]) ifFalse:[
369
9d34f1ff4d29 support of lineFeed charaters
ca
parents: 354
diff changeset
   778
                    txt := UIPainter convertString:(txt asString) maxLineSize:maxCharsPerLine skipLineFeed:false.
286
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   779
                ]
696
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   780
            ]. 
459
fb5b5ecf7e86 set modified if help text has changed
tz
parents: 456
diff changeset
   781
            view contents:txt.
fb5b5ecf7e86 set modified if help text has changed
tz
parents: 456
diff changeset
   782
            view modified:false.
299
62009576ca33 checkin from browser
ca
parents: 292
diff changeset
   783
        ]
62009576ca33 checkin from browser
ca
parents: 292
diff changeset
   784
    ]
286
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   785
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   786
! !
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   787
369
9d34f1ff4d29 support of lineFeed charaters
ca
parents: 354
diff changeset
   788
!UIHelpTool methodsFor:'startup / release'!
9d34f1ff4d29 support of lineFeed charaters
ca
parents: 354
diff changeset
   789
9d34f1ff4d29 support of lineFeed charaters
ca
parents: 354
diff changeset
   790
closeRequest
722
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   791
    "before closing the help tool, ask for permission
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   792
    "
740
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   793
    (modified and:[self masterApplication isNil]) ifTrue:[
459
fb5b5ecf7e86 set modified if help text has changed
tz
parents: 456
diff changeset
   794
        (self confirm:'Exit without saving your modifications?') ifFalse:[
369
9d34f1ff4d29 support of lineFeed charaters
ca
parents: 354
diff changeset
   795
            ^ self
9d34f1ff4d29 support of lineFeed charaters
ca
parents: 354
diff changeset
   796
        ]
9d34f1ff4d29 support of lineFeed charaters
ca
parents: 354
diff changeset
   797
    ].
740
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   798
    ^super closeRequest
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   799
!
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   800
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   801
initialize
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   802
    "initialize instance variables
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   803
    "
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   804
    super initialize.
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   805
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   806
    dictionary   := Dictionary new.
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   807
    dictionaries := Dictionary new.
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   808
    modified   := false.
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   809
696
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   810
!
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   811
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   812
openInterface:aSymbol
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   813
    "open interface
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   814
    "
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   815
    super openInterface: #windowSpecForStandAlone
369
9d34f1ff4d29 support of lineFeed charaters
ca
parents: 354
diff changeset
   816
! !
9d34f1ff4d29 support of lineFeed charaters
ca
parents: 354
diff changeset
   817
740
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   818
!UIHelpTool methodsFor:'user actions'!
286
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   819
722
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   820
accept
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   821
    "accept the help text
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   822
    "
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   823
    |view key txt list listChgd|   
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   824
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   825
    (listSelection size == 0 or:[(view := self editTextView) isNil]) ifFalse:[
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   826
        txt    := view contents asString.
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   827
        key    := listSelection asSymbol.
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   828
        list   := self listChannel value.
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   829
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   830
        (listChgd := (dictionary at:key ifAbsent:nil) isNil) ifTrue:[
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   831
            list add:key.
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   832
        ].             
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   833
        dictionary at:key put:txt.
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   834
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   835
        listChgd ifTrue:[
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   836
            self updateList.
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   837
            (builder componentAt: #listOfHelpKeysView) selection: (list indexOf: key).
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   838
        ]. 
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   839
740
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   840
        modified := true.
722
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   841
        modifiedHolder notNil ifTrue: [modifiedHolder value:true]
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   842
    ]
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   843
!
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   844
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   845
add
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   846
    "add help key
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   847
    "
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   848
    self listModel value: (builder componentAt: #helpKeyInputField asSymbol) contents.
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   849
    self accept
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   850
!
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   851
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   852
delete
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   853
    "delete selected help key
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   854
    "
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   855
    listSelection notNil
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   856
    ifTrue:
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   857
    [
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   858
        dictionary removeKey: listSelection asSymbol ifAbsent: nil.
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   859
        self remove.
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   860
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   861
        self updateList.
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   862
740
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   863
        modified := true.
722
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   864
        modifiedHolder notNil ifTrue: [modifiedHolder value:true]
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   865
    ]
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   866
!
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   867
286
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   868
doFromClass
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   869
    "setup new specification from a class accessed through to a dialog
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   870
    "
701
bcd65f75ade4 ca's #doFromClass corrected
tz
parents: 700
diff changeset
   871
    |cls cls2 accepted|
286
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   872
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   873
    specClass notNil ifTrue:[cls := specClass name asValue]
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   874
                    ifFalse:[cls := '' asValue].
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   875
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   876
    [true] whileTrue:[
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   877
        accepted :=
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   878
            (DialogBox new
696
e91402372900 popup menu replaced by a list + supporting of help specs from different classes
tz
parents: 479
diff changeset
   879
                addTextLabel:'Class name:';
286
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   880
                addInputFieldOn:cls; 
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   881
                addAbortButton; 
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   882
                addOkButton; 
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   883
                open
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   884
            ) accepted.
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   885
        accepted ifFalse:[^ self].
701
bcd65f75ade4 ca's #doFromClass corrected
tz
parents: 700
diff changeset
   886
        cls2 := self applicationClassAssociatedWith:cls value.
286
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   887
701
bcd65f75ade4 ca's #doFromClass corrected
tz
parents: 700
diff changeset
   888
        (cls2 notNil and: [cls2 respondsTo: #helpSpec]) ifTrue:[ 
bcd65f75ade4 ca's #doFromClass corrected
tz
parents: 700
diff changeset
   889
            ^ self helpSpecFrom:cls2
286
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   890
        ].
701
bcd65f75ade4 ca's #doFromClass corrected
tz
parents: 700
diff changeset
   891
        self warn:'No help spec found in class ', cls value asBoldText, '!!'.
286
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   892
    ]
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   893
!
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   894
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   895
doReload
722
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   896
    "reload the help dictionaries
286
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   897
    "
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   898
    |oldSel model|
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   899
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   900
    model  := self listModel.
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   901
    oldSel := model value.
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   902
    model value:nil.
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   903
    self helpSpecFrom:specClass.
23712b1d3f3d checkin from browser
ca
parents: 261
diff changeset
   904
    model value:oldSel.
740
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   905
    modified := false.
369
9d34f1ff4d29 support of lineFeed charaters
ca
parents: 354
diff changeset
   906
722
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   907
!
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   908
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   909
doSave
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   910
    "save the help dictionaries
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   911
    "
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   912
    self installHelpSpecsOnClass:specClass
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   913
!
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   914
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   915
remove
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   916
    "remove selected help key
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   917
    "
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   918
    self listModel value: nil.
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   919
    self updateList.
a1bb632b1e00 better save routine + help text added
tz
parents: 717
diff changeset
   920
    modifiedHolder notNil ifTrue: [modifiedHolder value:true]
740
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   921
!
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   922
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   923
reset
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   924
    "reset the help tool
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   925
    "
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   926
    specClass := listSelection := nil.
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   927
    self dictionary: nil.
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   928
    self dictionaries: nil.
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   929
    self listOfHelpSpecClasses removeAll.
e7362f3ab5e5 some bugs fixed
tz
parents: 722
diff changeset
   930
    modified := false.
148
785417b6955d intitial checkin
ca
parents:
diff changeset
   931
! !
785417b6955d intitial checkin
ca
parents:
diff changeset
   932
785417b6955d intitial checkin
ca
parents:
diff changeset
   933
!UIHelpTool class methodsFor:'documentation'!
785417b6955d intitial checkin
ca
parents:
diff changeset
   934
785417b6955d intitial checkin
ca
parents:
diff changeset
   935
version
785417b6955d intitial checkin
ca
parents:
diff changeset
   936
    ^ '$Header$'
785417b6955d intitial checkin
ca
parents:
diff changeset
   937
! !