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