ResourceSpecEditor.st
author Claus Gittinger <cg@exept.de>
Sat, 12 May 2018 14:23:45 +0200
changeset 4088 bbf9b58f99c8
parent 3997 f388b337715a
child 4366 808d9c5e8712
permissions -rw-r--r--
#FEATURE by cg class: MIMETypes class changed: #initializeFileInfoMappings class: MIMETypes::MIMEType added: #asMimeType #isCHeaderType #isCPPSourceType #isCSourceType
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
     1
"
896
6e23150974d0 comments + docu
tz
parents: 889
diff changeset
     2
 COPYRIGHT (c) 1997-1998 by eXept Software AG
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
     3
              All Rights Reserved
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
     4
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
     5
 This software is furnished under a license and may be used
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
     6
 only in accordance with the terms of that license and with the
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
     7
 inclusion of the above copyright notice. This software may not
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
     8
 be provided or otherwise made available to, or used by, any
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
     9
 other person.  No title to or ownership of the software is
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
    10
 hereby transferred.
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
    11
"
1390
35f90684be49 browserClass from preferences
Claus Gittinger <cg@exept.de>
parents: 1201
diff changeset
    12
"{ Package: 'stx:libview2' }"
35f90684be49 browserClass from preferences
Claus Gittinger <cg@exept.de>
parents: 1201
diff changeset
    13
3519
46d23afbb2a6 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 2874
diff changeset
    14
"{ NameSpace: Smalltalk }"
46d23afbb2a6 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 2874
diff changeset
    15
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
    16
ToolApplicationModel subclass:#ResourceSpecEditor
2097
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
    17
	instanceVariableNames:'specClass specClassName specSelector aspects modified hasSaved
2748
03b9b57d2076 fixed usage as subcomponent in browser
Claus Gittinger <cg@exept.de>
parents: 2693
diff changeset
    18
		tabSelection isEmbeddedInBrowser'
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
    19
	classVariableNames:''
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
    20
	poolDictionaries:''
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
    21
	category:'Interface-Framework'
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
    22
!
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
    23
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
    24
!ResourceSpecEditor class methodsFor:'documentation'!
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
    25
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
    26
copyright
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
    27
"
896
6e23150974d0 comments + docu
tz
parents: 889
diff changeset
    28
 COPYRIGHT (c) 1997-1998 by eXept Software AG
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
    29
              All Rights Reserved
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
    30
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
    31
 This software is furnished under a license and may be used
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
    32
 only in accordance with the terms of that license and with the
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
    33
 inclusion of the above copyright notice. This software may not
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
    34
 be provided or otherwise made available to, or used by, any
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
    35
 other person.  No title to or ownership of the software is
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
    36
 hereby transferred.
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
    37
"
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
    38
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
    39
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
    40
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
    41
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
    42
!
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
    43
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
    44
documentation
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
    45
"
896
6e23150974d0 comments + docu
tz
parents: 889
diff changeset
    46
    Abstract super class for the MenuEditor, HierarchicalListEditor, 
6e23150974d0 comments + docu
tz
parents: 889
diff changeset
    47
    and the TabListEditor.
6e23150974d0 comments + docu
tz
parents: 889
diff changeset
    48
    It provides common behavior for initializing, loading, saving, and
6e23150974d0 comments + docu
tz
parents: 889
diff changeset
    49
    asking for modifications of the resource specs (#menu, #hierarchicalList, 
6e23150974d0 comments + docu
tz
parents: 889
diff changeset
    50
    #tabList) for the concrete subclasses.
6e23150974d0 comments + docu
tz
parents: 889
diff changeset
    51
6e23150974d0 comments + docu
tz
parents: 889
diff changeset
    52
    [instance variables:]
6e23150974d0 comments + docu
tz
parents: 889
diff changeset
    53
        specClass       <Symbol>                class implementing the resource spec
6e23150974d0 comments + docu
tz
parents: 889
diff changeset
    54
        specSelector    <Symbol>                selector returning the resource spec
6e23150974d0 comments + docu
tz
parents: 889
diff changeset
    55
        aspects         <IdentityDictionary>    dictionary with the attributes of the resource spec
6e23150974d0 comments + docu
tz
parents: 889
diff changeset
    56
        modified        <Boolean>               flag whether the resource spec was modified
6e23150974d0 comments + docu
tz
parents: 889
diff changeset
    57
        hasSaved        <Boolean>               flag whether the resource spec was saved
6e23150974d0 comments + docu
tz
parents: 889
diff changeset
    58
        tabSelection    <Integer>               index of the tab selection
6e23150974d0 comments + docu
tz
parents: 889
diff changeset
    59
6e23150974d0 comments + docu
tz
parents: 889
diff changeset
    60
    [see also:]
6e23150974d0 comments + docu
tz
parents: 889
diff changeset
    61
        MenuEditor
6e23150974d0 comments + docu
tz
parents: 889
diff changeset
    62
        HierarchicalListEditor
6e23150974d0 comments + docu
tz
parents: 889
diff changeset
    63
        TabListEditor
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
    64
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
    65
    [author:]
876
585929b1fec2 some cleans
tz
parents: 868
diff changeset
    66
         Thomas Zwick, eXept Software AG
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
    67
"
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
    68
! !
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
    69
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
    70
!ResourceSpecEditor class methodsFor:'instance creation'!
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
    71
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
    72
openModalOnClass:aClass andSelector:aSelector
896
6e23150974d0 comments + docu
tz
parents: 889
diff changeset
    73
    "opens modal the Resource Spec Editor on aClass and aSelector"
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
    74
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
    75
    ^self new openModalOnClass:aClass andSelector:aSelector
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
    76
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
    77
!
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
    78
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
    79
openOnClass:aClass andSelector:aSelector
896
6e23150974d0 comments + docu
tz
parents: 889
diff changeset
    80
    "opens the Resource Spec Editor on aClass and aSelector"
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
    81
2102
ef76fea01343 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2097
diff changeset
    82
    ^ self new openOnClass:aClass andSelector:aSelector
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
    83
! !
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
    84
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
    85
!ResourceSpecEditor class methodsFor:'accessing'!
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
    86
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
    87
codeGenerationComment
896
6e23150974d0 comments + docu
tz
parents: 889
diff changeset
    88
    "returns a comment for the method code generated by myself"
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
    89
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
    90
    ^self codeGenerationCommentForClass: self
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
    91
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
    92
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
    93
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
    94
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
    95
!
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
    96
1994
0747926cfd33 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1967
diff changeset
    97
codeGenerationCommentForClass: generatingClass
0747926cfd33 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1967
diff changeset
    98
    "returns a comment for the method code generated by generatingClass"
0747926cfd33 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1967
diff changeset
    99
0747926cfd33 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1967
diff changeset
   100
    |generatingClassName|
0747926cfd33 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1967
diff changeset
   101
0747926cfd33 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1967
diff changeset
   102
    generatingClassName := generatingClass name.
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   103
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   104
    ^'    "This resource specification was automatically generated\',
1994
0747926cfd33 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1967
diff changeset
   105
     '     by the ', generatingClassName, ' of ST/X."\\',
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   106
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   107
     '    "Do not manually edit this!! If it is corrupted,\',
1994
0747926cfd33 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1967
diff changeset
   108
     '     the ', generatingClassName, ' may not be able to read the specification."'
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   109
!
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   110
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   111
resourceType
896
6e23150974d0 comments + docu
tz
parents: 889
diff changeset
   112
    "returns the type of resource of the method generated by the Resource Spec Editor;
6e23150974d0 comments + docu
tz
parents: 889
diff changeset
   113
     concrete subclasses has to reimplement this method"
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   114
868
f35e6c622a98 subclassResponsibility
tz
parents: 867
diff changeset
   115
    ^self subclassResponsibility
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   116
! !
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   117
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   118
!ResourceSpecEditor class methodsFor:'aspects'!
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   119
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   120
aspects
896
6e23150974d0 comments + docu
tz
parents: 889
diff changeset
   121
    "returns the aspects for the attributes of the resource spec components;
6e23150974d0 comments + docu
tz
parents: 889
diff changeset
   122
     concrete subclasses might reimplement this method in order to return an array"
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   123
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   124
    ^#()
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   125
! !
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   126
3823
544c7521c6d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3809
diff changeset
   127
!ResourceSpecEditor class methodsFor:'help spec'!
544c7521c6d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3809
diff changeset
   128
544c7521c6d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3809
diff changeset
   129
helpSpec
544c7521c6d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3809
diff changeset
   130
    "This resource specification was automatically generated
544c7521c6d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3809
diff changeset
   131
     by the UIHelpTool of ST/X."
544c7521c6d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3809
diff changeset
   132
544c7521c6d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3809
diff changeset
   133
    "Do not manually edit this!! If it is corrupted,
544c7521c6d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3809
diff changeset
   134
     the UIHelpTool may not be able to read the specification."
544c7521c6d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3809
diff changeset
   135
544c7521c6d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3809
diff changeset
   136
    "
544c7521c6d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3809
diff changeset
   137
     UIHelpTool openOnClass:ToolApplicationModel
544c7521c6d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3809
diff changeset
   138
    "
544c7521c6d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3809
diff changeset
   139
544c7521c6d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3809
diff changeset
   140
    <resource: #help>
544c7521c6d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3809
diff changeset
   141
544c7521c6d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3809
diff changeset
   142
    ^ super helpSpec addPairsFrom:#(
544c7521c6d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3809
diff changeset
   143
#fileShowStoreString
544c7521c6d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3809
diff changeset
   144
'Show the Smalltalk storeString (to be pasted into code)'
544c7521c6d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3809
diff changeset
   145
544c7521c6d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3809
diff changeset
   146
)
544c7521c6d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3809
diff changeset
   147
! !
544c7521c6d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3809
diff changeset
   148
896
6e23150974d0 comments + docu
tz
parents: 889
diff changeset
   149
!ResourceSpecEditor class methodsFor:'queries'!
6e23150974d0 comments + docu
tz
parents: 889
diff changeset
   150
3876
500a45596c1c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3823
diff changeset
   151
isAbstract
500a45596c1c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3823
diff changeset
   152
    "Return if this class is an abstract class.
500a45596c1c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3823
diff changeset
   153
     True is returned here for myself only; false for subclasses.
500a45596c1c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3823
diff changeset
   154
     Abstract subclasses must redefine this again."
500a45596c1c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3823
diff changeset
   155
500a45596c1c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3823
diff changeset
   156
    ^ self == ResourceSpecEditor.
500a45596c1c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3823
diff changeset
   157
!
500a45596c1c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3823
diff changeset
   158
896
6e23150974d0 comments + docu
tz
parents: 889
diff changeset
   159
isVisualStartable
1427
b3e355574ccf comment only
Claus Gittinger <cg@exept.de>
parents: 1390
diff changeset
   160
    "return true, if this application can be started via #open.
b3e355574ccf comment only
Claus Gittinger <cg@exept.de>
parents: 1390
diff changeset
   161
     (to allow start of a change browser via double-click in the browser)"
896
6e23150974d0 comments + docu
tz
parents: 889
diff changeset
   162
6e23150974d0 comments + docu
tz
parents: 889
diff changeset
   163
    self == ResourceSpecEditor ifTrue:[^false].
6e23150974d0 comments + docu
tz
parents: 889
diff changeset
   164
    ^super isVisualStartable
1967
815ac59338e1 resource package
Claus Gittinger <cg@exept.de>
parents: 1874
diff changeset
   165
!
815ac59338e1 resource package
Claus Gittinger <cg@exept.de>
parents: 1874
diff changeset
   166
815ac59338e1 resource package
Claus Gittinger <cg@exept.de>
parents: 1874
diff changeset
   167
resourcePackage
815ac59338e1 resource package
Claus Gittinger <cg@exept.de>
parents: 1874
diff changeset
   168
    ^ #'stx:libtool2'
896
6e23150974d0 comments + docu
tz
parents: 889
diff changeset
   169
! !
6e23150974d0 comments + docu
tz
parents: 889
diff changeset
   170
2539
9ed4a786aec2 category change
Claus Gittinger <cg@exept.de>
parents: 2498
diff changeset
   171
!ResourceSpecEditor class methodsFor:'startup & release'!
876
585929b1fec2 some cleans
tz
parents: 868
diff changeset
   172
585929b1fec2 some cleans
tz
parents: 868
diff changeset
   173
preSnapshot
896
6e23150974d0 comments + docu
tz
parents: 889
diff changeset
   174
    "before a snapshot; updates the channels,
6e23150974d0 comments + docu
tz
parents: 889
diff changeset
   175
     because the clipboard has removed"
876
585929b1fec2 some cleans
tz
parents: 868
diff changeset
   176
585929b1fec2 some cleans
tz
parents: 868
diff changeset
   177
    super preSnapshot.
585929b1fec2 some cleans
tz
parents: 868
diff changeset
   178
1090
d7738a06b696 fixing Thomas's code
Claus Gittinger <cg@exept.de>
parents: 1003
diff changeset
   179
    instances notNil ifTrue:[
d7738a06b696 fixing Thomas's code
Claus Gittinger <cg@exept.de>
parents: 1003
diff changeset
   180
        instances do:[:inst |
d7738a06b696 fixing Thomas's code
Claus Gittinger <cg@exept.de>
parents: 1003
diff changeset
   181
            inst updateChannels. 
2103
ebe0bb50303d valueOf* methods renamed
Claus Gittinger <cg@exept.de>
parents: 2102
diff changeset
   182
            inst enablingCommitButtonsHolder value: false.
1147
bbaa243ddd1c accept & modifiedChannels
Claus Gittinger <cg@exept.de>
parents: 1090
diff changeset
   183
            inst modifiedChannel value: false. 
1090
d7738a06b696 fixing Thomas's code
Claus Gittinger <cg@exept.de>
parents: 1003
diff changeset
   184
        ]
876
585929b1fec2 some cleans
tz
parents: 868
diff changeset
   185
    ]
585929b1fec2 some cleans
tz
parents: 868
diff changeset
   186
1090
d7738a06b696 fixing Thomas's code
Claus Gittinger <cg@exept.de>
parents: 1003
diff changeset
   187
    "Modified: / 4.2.1999 / 15:32:17 / cg"
876
585929b1fec2 some cleans
tz
parents: 868
diff changeset
   188
! !
585929b1fec2 some cleans
tz
parents: 868
diff changeset
   189
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   190
!ResourceSpecEditor methodsFor:'accessing'!
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   191
3809
bdb70c7f2b19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3519
diff changeset
   192
alternativeSpecSelectors
bdb70c7f2b19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3519
diff changeset
   193
    "returns an alternative method selector of the resource spec"
bdb70c7f2b19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3519
diff changeset
   194
bdb70c7f2b19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3519
diff changeset
   195
    ^ nil
bdb70c7f2b19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3519
diff changeset
   196
!
bdb70c7f2b19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3519
diff changeset
   197
2097
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   198
clearModified       
2111
c3aee5cae2fe embedding as special editors
Claus Gittinger <cg@exept.de>
parents: 2110
diff changeset
   199
    self modified:false
2097
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   200
!
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   201
2748
03b9b57d2076 fixed usage as subcomponent in browser
Claus Gittinger <cg@exept.de>
parents: 2693
diff changeset
   202
isEmbeddedInBrowser
03b9b57d2076 fixed usage as subcomponent in browser
Claus Gittinger <cg@exept.de>
parents: 2693
diff changeset
   203
    ^ isEmbeddedInBrowser ? false
03b9b57d2076 fixed usage as subcomponent in browser
Claus Gittinger <cg@exept.de>
parents: 2693
diff changeset
   204
!
03b9b57d2076 fixed usage as subcomponent in browser
Claus Gittinger <cg@exept.de>
parents: 2693
diff changeset
   205
03b9b57d2076 fixed usage as subcomponent in browser
Claus Gittinger <cg@exept.de>
parents: 2693
diff changeset
   206
isEmbeddedInBrowser:something
03b9b57d2076 fixed usage as subcomponent in browser
Claus Gittinger <cg@exept.de>
parents: 2693
diff changeset
   207
    isEmbeddedInBrowser := something.
03b9b57d2076 fixed usage as subcomponent in browser
Claus Gittinger <cg@exept.de>
parents: 2693
diff changeset
   208
!
03b9b57d2076 fixed usage as subcomponent in browser
Claus Gittinger <cg@exept.de>
parents: 2693
diff changeset
   209
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   210
modified       
889
85b7aa0e79e4 comments
tz
parents: 877
diff changeset
   211
    "returns whether the resource spec was modified"
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   212
2110
7a29bb9572ff *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   213
    ^ modified
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   214
!
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   215
3997
f388b337715a #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3905
diff changeset
   216
modified:aBoolean         
896
6e23150974d0 comments + docu
tz
parents: 889
diff changeset
   217
    "sets the resource spec modified as aBoolean"
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   218
3997
f388b337715a #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3905
diff changeset
   219
    modified := aBoolean.
f388b337715a #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3905
diff changeset
   220
    self updateInfoLabel
f388b337715a #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3905
diff changeset
   221
f388b337715a #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 3905
diff changeset
   222
    "Modified: / 29-08-2017 / 19:56:04 / cg"
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   223
!
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   224
2097
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   225
setModified       
2111
c3aee5cae2fe embedding as special editors
Claus Gittinger <cg@exept.de>
parents: 2110
diff changeset
   226
    self modified:true
2097
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   227
!
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   228
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   229
specClass
2296
4e2202b073bc Remove leftover halts
Stefan Vogel <sv@exept.de>
parents: 2265
diff changeset
   230
    "return the class where the resource spec is implemented"
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   231
2097
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   232
    ^ specClass
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   233
!
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   234
2097
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   235
specClass:aClassOrClassName
889
85b7aa0e79e4 comments
tz
parents: 877
diff changeset
   236
    "sets the class (or name) where the resource spec is (or should be) implemented"
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   237
2097
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   238
    aClassOrClassName isBehavior 
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   239
        ifTrue: [ specClass := aClassOrClassName ]
2374
d64bb87013d1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2296
diff changeset
   240
        ifFalse:[ specClass := Smalltalk classNamed:aClassOrClassName ].
d64bb87013d1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2296
diff changeset
   241
d64bb87013d1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2296
diff changeset
   242
    "Modified: / 14-01-2008 / 17:38:54 / cg"
2097
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   243
!
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   244
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   245
specClassName
2296
4e2202b073bc Remove leftover halts
Stefan Vogel <sv@exept.de>
parents: 2265
diff changeset
   246
    "return the classes name where the resource spec is implemented"
2097
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   247
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   248
    ^ specClass name
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   249
!
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   250
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   251
specSelector
889
85b7aa0e79e4 comments
tz
parents: 877
diff changeset
   252
    "returns the method selector of the resource spec"
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   253
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   254
    ^specSelector
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   255
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   256
!
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   257
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   258
specSelector:aSelector
3809
bdb70c7f2b19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3519
diff changeset
   259
    "sets the method selector of the resource spec.
bdb70c7f2b19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 3519
diff changeset
   260
     That is the spec method being edited (i.e. #helpSpec, #windowSpec, #menuSpec, etc.)"
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   261
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   262
    specSelector := aSelector
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   263
! !
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   264
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   265
!ResourceSpecEditor methodsFor:'aspects'!
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   266
2120
0d32d6e4a918 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   267
aspectAt:aKey put:aValueHolder
0d32d6e4a918 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   268
    aspects at: aKey put:aValueHolder
0d32d6e4a918 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   269
!
0d32d6e4a918 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   270
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   271
aspectFor:aKey
889
85b7aa0e79e4 comments
tz
parents: 877
diff changeset
   272
    "returns the aspect for a aKey or nil"
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   273
2498
b2f9d4dca9f4 no change
Claus Gittinger <cg@exept.de>
parents: 2394
diff changeset
   274
    ^ aspects at: aKey ifAbsent: [super aspectFor:aKey]
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   275
!
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   276
2200
98ec425dc11c shared code between Menu- and UIPainter
Claus Gittinger <cg@exept.de>
parents: 2120
diff changeset
   277
autoAcceptOnSelectionChange
98ec425dc11c shared code between Menu- and UIPainter
Claus Gittinger <cg@exept.de>
parents: 2120
diff changeset
   278
    ^ builder valueAspectFor:#autoAcceptOnSelectionChange initialValue:true
98ec425dc11c shared code between Menu- and UIPainter
Claus Gittinger <cg@exept.de>
parents: 2120
diff changeset
   279
!
98ec425dc11c shared code between Menu- and UIPainter
Claus Gittinger <cg@exept.de>
parents: 2120
diff changeset
   280
2103
ebe0bb50303d valueOf* methods renamed
Claus Gittinger <cg@exept.de>
parents: 2102
diff changeset
   281
canPasteHolder
ebe0bb50303d valueOf* methods renamed
Claus Gittinger <cg@exept.de>
parents: 2102
diff changeset
   282
    "returns whether the application can paste; as value holder"
ebe0bb50303d valueOf* methods renamed
Claus Gittinger <cg@exept.de>
parents: 2102
diff changeset
   283
ebe0bb50303d valueOf* methods renamed
Claus Gittinger <cg@exept.de>
parents: 2102
diff changeset
   284
    |holder|
ebe0bb50303d valueOf* methods renamed
Claus Gittinger <cg@exept.de>
parents: 2102
diff changeset
   285
ebe0bb50303d valueOf* methods renamed
Claus Gittinger <cg@exept.de>
parents: 2102
diff changeset
   286
    holder := super canPasteHolder.
ebe0bb50303d valueOf* methods renamed
Claus Gittinger <cg@exept.de>
parents: 2102
diff changeset
   287
    holder value:(self class clipboard notNil).
ebe0bb50303d valueOf* methods renamed
Claus Gittinger <cg@exept.de>
parents: 2102
diff changeset
   288
    ^ holder
ebe0bb50303d valueOf* methods renamed
Claus Gittinger <cg@exept.de>
parents: 2102
diff changeset
   289
!
ebe0bb50303d valueOf* methods renamed
Claus Gittinger <cg@exept.de>
parents: 2102
diff changeset
   290
ebe0bb50303d valueOf* methods renamed
Claus Gittinger <cg@exept.de>
parents: 2102
diff changeset
   291
enableMovingInAboveHolder
ebe0bb50303d valueOf* methods renamed
Claus Gittinger <cg@exept.de>
parents: 2102
diff changeset
   292
    "returns whether the selected item can move into the previous item as child;
ebe0bb50303d valueOf* methods renamed
Claus Gittinger <cg@exept.de>
parents: 2102
diff changeset
   293
     as a value holder"
ebe0bb50303d valueOf* methods renamed
Claus Gittinger <cg@exept.de>
parents: 2102
diff changeset
   294
ebe0bb50303d valueOf* methods renamed
Claus Gittinger <cg@exept.de>
parents: 2102
diff changeset
   295
    ^builder booleanValueAspectFor: #valueOfEnableMovingInAbove
ebe0bb50303d valueOf* methods renamed
Claus Gittinger <cg@exept.de>
parents: 2102
diff changeset
   296
!
ebe0bb50303d valueOf* methods renamed
Claus Gittinger <cg@exept.de>
parents: 2102
diff changeset
   297
ebe0bb50303d valueOf* methods renamed
Claus Gittinger <cg@exept.de>
parents: 2102
diff changeset
   298
enableMovingInHolder
ebe0bb50303d valueOf* methods renamed
Claus Gittinger <cg@exept.de>
parents: 2102
diff changeset
   299
    "returns whether the selected item can move into next item as child; as value holder"
ebe0bb50303d valueOf* methods renamed
Claus Gittinger <cg@exept.de>
parents: 2102
diff changeset
   300
ebe0bb50303d valueOf* methods renamed
Claus Gittinger <cg@exept.de>
parents: 2102
diff changeset
   301
    ^builder booleanValueAspectFor: #valueOfEnableMovingIn
ebe0bb50303d valueOf* methods renamed
Claus Gittinger <cg@exept.de>
parents: 2102
diff changeset
   302
!
ebe0bb50303d valueOf* methods renamed
Claus Gittinger <cg@exept.de>
parents: 2102
diff changeset
   303
ebe0bb50303d valueOf* methods renamed
Claus Gittinger <cg@exept.de>
parents: 2102
diff changeset
   304
enableMovingOutHolder
ebe0bb50303d valueOf* methods renamed
Claus Gittinger <cg@exept.de>
parents: 2102
diff changeset
   305
    "returns whether the selected item can move out from its parent item; as value holder"
ebe0bb50303d valueOf* methods renamed
Claus Gittinger <cg@exept.de>
parents: 2102
diff changeset
   306
ebe0bb50303d valueOf* methods renamed
Claus Gittinger <cg@exept.de>
parents: 2102
diff changeset
   307
    ^builder booleanValueAspectFor: #valueOfEnableMovingOut
ebe0bb50303d valueOf* methods renamed
Claus Gittinger <cg@exept.de>
parents: 2102
diff changeset
   308
!
ebe0bb50303d valueOf* methods renamed
Claus Gittinger <cg@exept.de>
parents: 2102
diff changeset
   309
ebe0bb50303d valueOf* methods renamed
Claus Gittinger <cg@exept.de>
parents: 2102
diff changeset
   310
enableMovingUpOrDownHolder
ebe0bb50303d valueOf* methods renamed
Claus Gittinger <cg@exept.de>
parents: 2102
diff changeset
   311
    "returns whether the selected item can move up or down; as value holder"
ebe0bb50303d valueOf* methods renamed
Claus Gittinger <cg@exept.de>
parents: 2102
diff changeset
   312
ebe0bb50303d valueOf* methods renamed
Claus Gittinger <cg@exept.de>
parents: 2102
diff changeset
   313
    ^builder booleanValueAspectFor: #valueOfEnableMovingUpOrDown
ebe0bb50303d valueOf* methods renamed
Claus Gittinger <cg@exept.de>
parents: 2102
diff changeset
   314
!
ebe0bb50303d valueOf* methods renamed
Claus Gittinger <cg@exept.de>
parents: 2102
diff changeset
   315
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   316
tabModel
889
85b7aa0e79e4 comments
tz
parents: 877
diff changeset
   317
    "returns the value holder for the tab selection"
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   318
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   319
    |holder|
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   320
    (holder := builder bindingAt:#tabModel) isNil ifTrue:[
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   321
        holder := AspectAdaptor new subject:self; forAspect:#tabSelection.
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   322
        builder aspectAt:#tabModel put:holder.
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   323
    ].
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   324
    ^ holder
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   325
!
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   326
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   327
valueOfEnableMovingIn
2606
6584575b4d5f Mark obsolete methods
Stefan Vogel <sv@exept.de>
parents: 2539
diff changeset
   328
    <resource: #obsolete>
1470
1ac79214af0f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
   329
    "returns whether the selected item can move into next item as child; as value holder"
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   330
2103
ebe0bb50303d valueOf* methods renamed
Claus Gittinger <cg@exept.de>
parents: 2102
diff changeset
   331
    self obsoleteMethodWarning:'stupid name - use #enableMovingInHolder'.
ebe0bb50303d valueOf* methods renamed
Claus Gittinger <cg@exept.de>
parents: 2102
diff changeset
   332
    ^ self enableMovingInHolder
1470
1ac79214af0f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
   333
!
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   334
1470
1ac79214af0f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
   335
valueOfEnableMovingInAbove
2606
6584575b4d5f Mark obsolete methods
Stefan Vogel <sv@exept.de>
parents: 2539
diff changeset
   336
    <resource: #obsolete>
1470
1ac79214af0f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
   337
    "returns whether the selected item can move into the previous item as child;
1ac79214af0f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
   338
     as a value holder"
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   339
2103
ebe0bb50303d valueOf* methods renamed
Claus Gittinger <cg@exept.de>
parents: 2102
diff changeset
   340
    self obsoleteMethodWarning:'stupid name - use #enableMovingInAboveHolder'.
ebe0bb50303d valueOf* methods renamed
Claus Gittinger <cg@exept.de>
parents: 2102
diff changeset
   341
    ^ self enableMovingInAboveHolder
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   342
!
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   343
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   344
valueOfEnableMovingOut
2606
6584575b4d5f Mark obsolete methods
Stefan Vogel <sv@exept.de>
parents: 2539
diff changeset
   345
    <resource: #obsolete>
1470
1ac79214af0f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
   346
    "returns whether the selected item can move out from its parent item; as value holder"
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   347
2103
ebe0bb50303d valueOf* methods renamed
Claus Gittinger <cg@exept.de>
parents: 2102
diff changeset
   348
    self obsoleteMethodWarning:'stupid name - use #enableMovingOutHolder'.
ebe0bb50303d valueOf* methods renamed
Claus Gittinger <cg@exept.de>
parents: 2102
diff changeset
   349
    ^ self enableMovingOutHolder
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   350
!
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   351
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   352
valueOfEnableMovingUpOrDown
2606
6584575b4d5f Mark obsolete methods
Stefan Vogel <sv@exept.de>
parents: 2539
diff changeset
   353
    <resource: #obsolete>
1470
1ac79214af0f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
   354
    "returns whether the selected item can move up or down; as value holder"
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   355
2103
ebe0bb50303d valueOf* methods renamed
Claus Gittinger <cg@exept.de>
parents: 2102
diff changeset
   356
    self obsoleteMethodWarning:'stupid name - use #enableMovingUpOrDownHolder'.
ebe0bb50303d valueOf* methods renamed
Claus Gittinger <cg@exept.de>
parents: 2102
diff changeset
   357
    ^ self enableMovingUpOrDownHolder
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   358
! !
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   359
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   360
!ResourceSpecEditor methodsFor:'building'!
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   361
2037
a99b25a83641 askForListModification for modal views too
penk
parents: 1994
diff changeset
   362
buildFromClass: aClass andSelector: aSelector
2097
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   363
    ^ self loadFromClass: aClass andSelector: aSelector
2037
a99b25a83641 askForListModification for modal views too
penk
parents: 1994
diff changeset
   364
!
a99b25a83641 askForListModification for modal views too
penk
parents: 1994
diff changeset
   365
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   366
buildFromResourceSpec: aResourceSpec
868
f35e6c622a98 subclassResponsibility
tz
parents: 867
diff changeset
   367
    "concrete subclass has to reimplement this method
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   368
     in order to build its resource spec from aResourceSpec"
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   369
2097
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   370
    ^ self loadFromResourceSpec:aResourceSpec
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   371
!
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   372
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   373
loadFromClass: aClass andSelector: aSelector
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   374
    ^ self subclassResponsibility
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   375
!
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   376
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   377
loadFromResourceSpec: aResourceSpec
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   378
    "concrete subclass has to reimplement this method
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   379
     in order to build its resource spec from aResourceSpec"
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   380
2693
63c153f0ce90 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2606
diff changeset
   381
    ^ self subclassResponsibility
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   382
! !
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   383
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   384
!ResourceSpecEditor methodsFor:'change & update'!
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   385
1874
4bd4f25fdada oops - modified flag was always re-turned on
Claus Gittinger <cg@exept.de>
parents: 1870
diff changeset
   386
update:something with:aParameter from:changedObject
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   387
    "one of my aspects has changed; update modified channel for the commit buttons"
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   388
1874
4bd4f25fdada oops - modified flag was always re-turned on
Claus Gittinger <cg@exept.de>
parents: 1870
diff changeset
   389
    |enableCommitButtonsHolder|
4bd4f25fdada oops - modified flag was always re-turned on
Claus Gittinger <cg@exept.de>
parents: 1870
diff changeset
   390
2103
ebe0bb50303d valueOf* methods renamed
Claus Gittinger <cg@exept.de>
parents: 2102
diff changeset
   391
    enableCommitButtonsHolder := self enablingCommitButtonsHolder.
1874
4bd4f25fdada oops - modified flag was always re-turned on
Claus Gittinger <cg@exept.de>
parents: 1870
diff changeset
   392
4bd4f25fdada oops - modified flag was always re-turned on
Claus Gittinger <cg@exept.de>
parents: 1870
diff changeset
   393
    changedObject ~~ enableCommitButtonsHolder ifTrue:[ 
4bd4f25fdada oops - modified flag was always re-turned on
Claus Gittinger <cg@exept.de>
parents: 1870
diff changeset
   394
        enableCommitButtonsHolder value: true 
4bd4f25fdada oops - modified flag was always re-turned on
Claus Gittinger <cg@exept.de>
parents: 1870
diff changeset
   395
    ]
876
585929b1fec2 some cleans
tz
parents: 868
diff changeset
   396
!
585929b1fec2 some cleans
tz
parents: 868
diff changeset
   397
585929b1fec2 some cleans
tz
parents: 868
diff changeset
   398
updateAllToolInstances
896
6e23150974d0 comments + docu
tz
parents: 889
diff changeset
   399
    "updates the channels of all other instances of my class"
876
585929b1fec2 some cleans
tz
parents: 868
diff changeset
   400
585929b1fec2 some cleans
tz
parents: 868
diff changeset
   401
    self allToolInstances do: [:inst| inst updateChannels]
585929b1fec2 some cleans
tz
parents: 868
diff changeset
   402
585929b1fec2 some cleans
tz
parents: 868
diff changeset
   403
!
585929b1fec2 some cleans
tz
parents: 868
diff changeset
   404
585929b1fec2 some cleans
tz
parents: 868
diff changeset
   405
updateChannels
896
6e23150974d0 comments + docu
tz
parents: 889
diff changeset
   406
    "updates my channels"
876
585929b1fec2 some cleans
tz
parents: 868
diff changeset
   407
2103
ebe0bb50303d valueOf* methods renamed
Claus Gittinger <cg@exept.de>
parents: 2102
diff changeset
   408
"/    self valueOfCanPaste
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   409
! !
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   410
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   411
!ResourceSpecEditor methodsFor:'help'!
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   412
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   413
defaultInfoLabel
889
85b7aa0e79e4 comments
tz
parents: 877
diff changeset
   414
    "returns the default label for the info bar"
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   415
2097
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   416
    specClass isBehavior ifTrue:[
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   417
        (specClass respondsTo:specSelector) ifTrue:[
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   418
            ^ specClass name, ' >> ', specSelector
876
585929b1fec2 some cleans
tz
parents: 868
diff changeset
   419
        ].
2097
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   420
        specSelector isNil ifTrue:[
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   421
            ^ specClass name, ' >> ? (no selector defined)'
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   422
        ].
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   423
        ^ specClass name, ' >> ', specSelector, ' (not implemented)'
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   424
    ].
2097
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   425
    ^ 'No class and selector defined.'
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   426
! !
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   427
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   428
!ResourceSpecEditor methodsFor:'initialization'!
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   429
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   430
initialize
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   431
    "initialize the flags and the aspects"
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   432
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   433
    super initialize.
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   434
896
6e23150974d0 comments + docu
tz
parents: 889
diff changeset
   435
    hasSaved     := modified := false.
6e23150974d0 comments + docu
tz
parents: 889
diff changeset
   436
    aspects      := IdentityDictionary new.
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   437
    tabSelection := 0.
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   438
2874
6a5590e8b647 comment/format in: #initialize
Claus Gittinger <cg@exept.de>
parents: 2748
diff changeset
   439
    self class aspects do:[:aKey|
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   440
        |holder|
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   441
        aspects at:aKey put: (holder := ValueHolder new).
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   442
        holder addDependent: self
896
6e23150974d0 comments + docu
tz
parents: 889
diff changeset
   443
    ]
2874
6a5590e8b647 comment/format in: #initialize
Claus Gittinger <cg@exept.de>
parents: 2748
diff changeset
   444
6a5590e8b647 comment/format in: #initialize
Claus Gittinger <cg@exept.de>
parents: 2748
diff changeset
   445
    "Modified: / 25-10-2010 / 10:31:32 / cg"
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   446
! !
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   447
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   448
!ResourceSpecEditor methodsFor:'private'!
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   449
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   450
askForItemModification
889
85b7aa0e79e4 comments
tz
parents: 877
diff changeset
   451
    "asks for resource item modification"
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   452
1524
6a0a84872e73 added cancel to ask-if-modified dialog
Claus Gittinger <cg@exept.de>
parents: 1504
diff changeset
   453
    |anythingChangedHolder anythingChanged answer|
6a0a84872e73 added cancel to ask-if-modified dialog
Claus Gittinger <cg@exept.de>
parents: 1504
diff changeset
   454
2103
ebe0bb50303d valueOf* methods renamed
Claus Gittinger <cg@exept.de>
parents: 2102
diff changeset
   455
    anythingChangedHolder := self enablingCommitButtonsHolder.
1524
6a0a84872e73 added cancel to ask-if-modified dialog
Claus Gittinger <cg@exept.de>
parents: 1504
diff changeset
   456
    anythingChanged := anythingChangedHolder value.
2200
98ec425dc11c shared code between Menu- and UIPainter
Claus Gittinger <cg@exept.de>
parents: 2120
diff changeset
   457
    anythingChanged ifFalse:[^ true].
98ec425dc11c shared code between Menu- and UIPainter
Claus Gittinger <cg@exept.de>
parents: 2120
diff changeset
   458
98ec425dc11c shared code between Menu- and UIPainter
Claus Gittinger <cg@exept.de>
parents: 2120
diff changeset
   459
    self autoAcceptOnSelectionChange value ifTrue:[
98ec425dc11c shared code between Menu- and UIPainter
Claus Gittinger <cg@exept.de>
parents: 2120
diff changeset
   460
        self accept.
98ec425dc11c shared code between Menu- and UIPainter
Claus Gittinger <cg@exept.de>
parents: 2120
diff changeset
   461
        ^ true
98ec425dc11c shared code between Menu- and UIPainter
Claus Gittinger <cg@exept.de>
parents: 2120
diff changeset
   462
    ].
1524
6a0a84872e73 added cancel to ask-if-modified dialog
Claus Gittinger <cg@exept.de>
parents: 1504
diff changeset
   463
2200
98ec425dc11c shared code between Menu- and UIPainter
Claus Gittinger <cg@exept.de>
parents: 2120
diff changeset
   464
    answer := Dialog 
98ec425dc11c shared code between Menu- and UIPainter
Claus Gittinger <cg@exept.de>
parents: 2120
diff changeset
   465
                    confirmWithCancel:(resources string:'Item was modified !!\Save it ?\' withCRs)
98ec425dc11c shared code between Menu- and UIPainter
Claus Gittinger <cg@exept.de>
parents: 2120
diff changeset
   466
                    labels:(resources array:#('Cancel' 'No' 'Yes'))
98ec425dc11c shared code between Menu- and UIPainter
Claus Gittinger <cg@exept.de>
parents: 2120
diff changeset
   467
                    default:3.
98ec425dc11c shared code between Menu- and UIPainter
Claus Gittinger <cg@exept.de>
parents: 2120
diff changeset
   468
    answer isNil ifTrue:[
98ec425dc11c shared code between Menu- and UIPainter
Claus Gittinger <cg@exept.de>
parents: 2120
diff changeset
   469
        ^ false
98ec425dc11c shared code between Menu- and UIPainter
Claus Gittinger <cg@exept.de>
parents: 2120
diff changeset
   470
    ].
1524
6a0a84872e73 added cancel to ask-if-modified dialog
Claus Gittinger <cg@exept.de>
parents: 1504
diff changeset
   471
2200
98ec425dc11c shared code between Menu- and UIPainter
Claus Gittinger <cg@exept.de>
parents: 2120
diff changeset
   472
    answer ifTrue:[
98ec425dc11c shared code between Menu- and UIPainter
Claus Gittinger <cg@exept.de>
parents: 2120
diff changeset
   473
        self accept
98ec425dc11c shared code between Menu- and UIPainter
Claus Gittinger <cg@exept.de>
parents: 2120
diff changeset
   474
    ] ifFalse:[
98ec425dc11c shared code between Menu- and UIPainter
Claus Gittinger <cg@exept.de>
parents: 2120
diff changeset
   475
        anythingChangedHolder value: false. 
98ec425dc11c shared code between Menu- and UIPainter
Claus Gittinger <cg@exept.de>
parents: 2120
diff changeset
   476
        self clearModifiedFlag. 
98ec425dc11c shared code between Menu- and UIPainter
Claus Gittinger <cg@exept.de>
parents: 2120
diff changeset
   477
        self clearModified.
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   478
    ].
2200
98ec425dc11c shared code between Menu- and UIPainter
Claus Gittinger <cg@exept.de>
parents: 2120
diff changeset
   479
    ^ true
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   480
2200
98ec425dc11c shared code between Menu- and UIPainter
Claus Gittinger <cg@exept.de>
parents: 2120
diff changeset
   481
    "Modified: / 05-09-2006 / 18:41:11 / cg"
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   482
!
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   483
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   484
askForListModification
889
85b7aa0e79e4 comments
tz
parents: 877
diff changeset
   485
    "asks for resource modification"
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   486
1870
c0475972bf3e Use 'Discard Changes and Exit' instead of 'Forget it...'
Stefan Vogel <sv@exept.de>
parents: 1767
diff changeset
   487
    self modified ifTrue:
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   488
    [
2265
0ab69cf04a73 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2234
diff changeset
   489
        ((YesNoBox title:(resources string:'Modified %1 spec was not saved. Proceed?' with:self class resourceType asUppercaseFirst))        
929
7dfcaf12d7df checkin from browser
Claus Gittinger <cg@exept.de>
parents: 896
diff changeset
   490
            noText:(resources string:'Cancel');
2037
a99b25a83641 askForListModification for modal views too
penk
parents: 1994
diff changeset
   491
            yesText:(resources string:'Discard Changes and Proceed');
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   492
            showAtPointer;
2037
a99b25a83641 askForListModification for modal views too
penk
parents: 1994
diff changeset
   493
            accepted) ifFalse: [^ false].
2097
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   494
        self clearModified
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   495
    ].
2037
a99b25a83641 askForListModification for modal views too
penk
parents: 1994
diff changeset
   496
    ^ true
929
7dfcaf12d7df checkin from browser
Claus Gittinger <cg@exept.de>
parents: 896
diff changeset
   497
2265
0ab69cf04a73 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2234
diff changeset
   498
    "Modified: / 17-10-2006 / 17:43:53 / cg"
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   499
!
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   500
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   501
askForModification
889
85b7aa0e79e4 comments
tz
parents: 877
diff changeset
   502
    "asks first for item and then for resource modification"
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   503
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   504
    ^self askForItemModification and: [self askForListModification]
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   505
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   506
!
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   507
2097
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   508
extractClassAndSelectorFrom:aString
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   509
    "extracts class and selector from a resource string. On success
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   510
     an association with the key a class and the selector as value
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   511
     is returned. Otherwise nil is returned
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   512
    "
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   513
    |words newClass newSel|
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   514
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   515
    aString size ~~ 0 ifTrue:[
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   516
        words := aString asCollectionOfWords.
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   517
2097
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   518
        words size == 2 ifTrue:[
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   519
            newClass := self resolveName:(words first).
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   520
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   521
            (newClass isClass and:[newClass isLoaded]) ifTrue:[
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   522
                newSel := words last asSymbol.
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   523
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   524
                (newClass class includesSelector:newSel) ifTrue:[
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   525
                    ^ Association key:newClass value:newSel            
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   526
                ].
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   527
            ].
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   528
        ].
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   529
    ].
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   530
    ^ nil
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   531
!
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   532
2097
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   533
updateHistory
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   534
    "updates the history, if there was loaded a resource spec"
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   535
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   536
    specClass notNil ifTrue:[
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   537
        self addHistoryEntryForClass:specClass selector:specSelector
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   538
    ]
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   539
!
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   540
2097
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   541
xxresourceMessage:aString
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   542
    "extracts the specClass and the specSelector from aString "
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   543
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   544
    |msg cls|
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   545
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   546
    (aString notNil and:[self askForModification]) ifTrue:[            
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   547
        msg := aString asCollectionOfWords.
2097
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   548
        (msg size == 2 
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   549
        and: [ (cls := self resolveName:(msg at:1)) notNil ])
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   550
        ifTrue:[
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   551
            specClass := cls.
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   552
            specSelector := (msg at: 2) asSymbol.
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   553
            ^true
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   554
        ]
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   555
    ].
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   556
    ^false
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   557
! !
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   558
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   559
!ResourceSpecEditor methodsFor:'queries'!
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   560
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   561
hasSaved
2107
5503c65f2e64 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2103
diff changeset
   562
    "returns true if the resource spec was saved"
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   563
2107
5503c65f2e64 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2103
diff changeset
   564
    ^ hasSaved
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   565
!
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   566
2110
7a29bb9572ff *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   567
isModified
2111
c3aee5cae2fe embedding as special editors
Claus Gittinger <cg@exept.de>
parents: 2110
diff changeset
   568
    ^ self modified
2110
7a29bb9572ff *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   569
!
7a29bb9572ff *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   570
2097
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   571
isNotStandAlone
3905
88442f2772d0 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3876
diff changeset
   572
    "returns true if the editor was NOT started from or in another tool;
88442f2772d0 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3876
diff changeset
   573
     i.e. is embedded in another tool, such as the inspector"
2097
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   574
2107
5503c65f2e64 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2103
diff changeset
   575
    ^ self masterApplication notNil
3905
88442f2772d0 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3876
diff changeset
   576
88442f2772d0 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3876
diff changeset
   577
    "Modified (comment): / 20-02-2017 / 10:47:10 / cg"
2097
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   578
!
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   579
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   580
isStandAlone
3905
88442f2772d0 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3876
diff changeset
   581
    "returns true if the editor was started from or in another tool;
88442f2772d0 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3876
diff changeset
   582
     i.e. is not embedded in another tool such as the inspector"
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   583
2107
5503c65f2e64 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2103
diff changeset
   584
    ^ self masterApplication isNil
3905
88442f2772d0 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3876
diff changeset
   585
88442f2772d0 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 3876
diff changeset
   586
    "Modified (comment): / 20-02-2017 / 10:46:50 / cg"
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   587
! !
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   588
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   589
!ResourceSpecEditor methodsFor:'selection'!
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   590
2200
98ec425dc11c shared code between Menu- and UIPainter
Claus Gittinger <cg@exept.de>
parents: 2120
diff changeset
   591
selectionChangeAllowed:newSelection
98ec425dc11c shared code between Menu- and UIPainter
Claus Gittinger <cg@exept.de>
parents: 2120
diff changeset
   592
    self isModified ifFalse:[^ true].
98ec425dc11c shared code between Menu- and UIPainter
Claus Gittinger <cg@exept.de>
parents: 2120
diff changeset
   593
98ec425dc11c shared code between Menu- and UIPainter
Claus Gittinger <cg@exept.de>
parents: 2120
diff changeset
   594
    self autoAcceptOnSelectionChange value ifTrue:[
98ec425dc11c shared code between Menu- and UIPainter
Claus Gittinger <cg@exept.de>
parents: 2120
diff changeset
   595
        self accept
98ec425dc11c shared code between Menu- and UIPainter
Claus Gittinger <cg@exept.de>
parents: 2120
diff changeset
   596
    ] ifFalse:[
98ec425dc11c shared code between Menu- and UIPainter
Claus Gittinger <cg@exept.de>
parents: 2120
diff changeset
   597
        self askForUnsavedModifications ifFalse:[^ false].
98ec425dc11c shared code between Menu- and UIPainter
Claus Gittinger <cg@exept.de>
parents: 2120
diff changeset
   598
    ].
98ec425dc11c shared code between Menu- and UIPainter
Claus Gittinger <cg@exept.de>
parents: 2120
diff changeset
   599
    ^ true
98ec425dc11c shared code between Menu- and UIPainter
Claus Gittinger <cg@exept.de>
parents: 2120
diff changeset
   600
!
98ec425dc11c shared code between Menu- and UIPainter
Claus Gittinger <cg@exept.de>
parents: 2120
diff changeset
   601
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   602
tabSelection
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   603
    "returns selected tab index or 0"
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   604
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   605
    ^tabSelection
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   606
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   607
! !
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   608
1767
f94850ee9885 method category rename
Claus Gittinger <cg@exept.de>
parents: 1735
diff changeset
   609
!ResourceSpecEditor methodsFor:'startup & release'!
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   610
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   611
closeRequest
2120
0d32d6e4a918 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   612
    "asks for permission before closing"
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   613
2120
0d32d6e4a918 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   614
    self askForModification ifTrue: [
0d32d6e4a918 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   615
        super closeRequest
0d32d6e4a918 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2111
diff changeset
   616
    ]
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   617
!
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   618
2097
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   619
loadFromMessage:classAndSelector
896
6e23150974d0 comments + docu
tz
parents: 889
diff changeset
   620
    "builds by evaluating aString the resource spec for editing"
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   621
2097
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   622
    |cls sel|
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   623
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   624
    self askForModification ifFalse:[ ^ false].
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   625
    classAndSelector isNil ifTrue:[^ false].
934
c32a44c8913e should not redefine AllButOpenInterface;
Claus Gittinger <cg@exept.de>
parents: 929
diff changeset
   626
2097
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   627
    cls := classAndSelector methodClass.
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   628
    sel := classAndSelector methodSelector.
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   629
    self isStandAlone 
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   630
        ifFalse: [self loadFromResourceSpec: (cls perform: sel).]
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   631
        ifTrue:  [self loadFromClass:cls andSelector:sel ].
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   632
    ^ true
934
c32a44c8913e should not redefine AllButOpenInterface;
Claus Gittinger <cg@exept.de>
parents: 929
diff changeset
   633
c32a44c8913e should not redefine AllButOpenInterface;
Claus Gittinger <cg@exept.de>
parents: 929
diff changeset
   634
    "Modified: / 21.5.1998 / 02:56:46 / cg"
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   635
!
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   636
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   637
openModalOnClass:aClass andSelector:aSelector
896
6e23150974d0 comments + docu
tz
parents: 889
diff changeset
   638
    "sets the specClass and specSelector and opens modal the interface"
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   639
2097
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   640
    specClass    := aClass isClass ifTrue: [aClass] ifFalse: [ Smalltalk classNamed:aClass].
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   641
    specSelector := aSelector.
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   642
1735
4cc63484a29a allButOpen must have been invoked
penk
parents: 1645
diff changeset
   643
    self openInterfaceModal.
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   644
!
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   645
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   646
openModalOnResourceSpec: aListSpec
896
6e23150974d0 comments + docu
tz
parents: 889
diff changeset
   647
    "builds first from specClass and specSelector the resource spec for editing,
6e23150974d0 comments + docu
tz
parents: 889
diff changeset
   648
     then opens modal the interface"
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   649
1735
4cc63484a29a allButOpen must have been invoked
penk
parents: 1645
diff changeset
   650
    self allButOpen.
2097
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   651
    self loadFromResourceSpec:aListSpec.
1735
4cc63484a29a allButOpen must have been invoked
penk
parents: 1645
diff changeset
   652
    self openWindowModal.
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   653
!
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   654
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   655
openOnClass:aClass andSelector:aSelector
896
6e23150974d0 comments + docu
tz
parents: 889
diff changeset
   656
    "sets the specClass and specSelector and opens the interface"
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   657
2097
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   658
    specClass    := aClass isBehavior ifTrue: [aClass] ifFalse: [ Smalltalk classNamed:aClass].
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   659
    specSelector := aSelector.
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   660
1735
4cc63484a29a allButOpen must have been invoked
penk
parents: 1645
diff changeset
   661
    self openInterface.
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   662
!
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   663
934
c32a44c8913e should not redefine AllButOpenInterface;
Claus Gittinger <cg@exept.de>
parents: 929
diff changeset
   664
postBuildWith:aBuilder
c32a44c8913e should not redefine AllButOpenInterface;
Claus Gittinger <cg@exept.de>
parents: 929
diff changeset
   665
    "after creating the views and before opening,
c32a44c8913e should not redefine AllButOpenInterface;
Claus Gittinger <cg@exept.de>
parents: 929
diff changeset
   666
     adds myself to the instances dictionary in the settings"
c32a44c8913e should not redefine AllButOpenInterface;
Claus Gittinger <cg@exept.de>
parents: 929
diff changeset
   667
c32a44c8913e should not redefine AllButOpenInterface;
Claus Gittinger <cg@exept.de>
parents: 929
diff changeset
   668
    super postBuildWith:aBuilder.
c32a44c8913e should not redefine AllButOpenInterface;
Claus Gittinger <cg@exept.de>
parents: 929
diff changeset
   669
1090
d7738a06b696 fixing Thomas's code
Claus Gittinger <cg@exept.de>
parents: 1003
diff changeset
   670
    self class rememberInstance:self
934
c32a44c8913e should not redefine AllButOpenInterface;
Claus Gittinger <cg@exept.de>
parents: 929
diff changeset
   671
1090
d7738a06b696 fixing Thomas's code
Claus Gittinger <cg@exept.de>
parents: 1003
diff changeset
   672
    "Modified: / 4.2.1999 / 15:33:23 / cg"
934
c32a44c8913e should not redefine AllButOpenInterface;
Claus Gittinger <cg@exept.de>
parents: 929
diff changeset
   673
!
c32a44c8913e should not redefine AllButOpenInterface;
Claus Gittinger <cg@exept.de>
parents: 929
diff changeset
   674
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   675
postOpenWith:aBuilder
896
6e23150974d0 comments + docu
tz
parents: 889
diff changeset
   676
    "after opening, builds from specClass and specSelector the resource spec for editing"
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   677
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   678
    super postOpenWith:aBuilder.
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   679
2097
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   680
    specClass notNil ifTrue:[
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   681
        self loadFromClass: specClass andSelector: specSelector 
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   682
    ]
876
585929b1fec2 some cleans
tz
parents: 868
diff changeset
   683
!
585929b1fec2 some cleans
tz
parents: 868
diff changeset
   684
585929b1fec2 some cleans
tz
parents: 868
diff changeset
   685
uninitialize
896
6e23150974d0 comments + docu
tz
parents: 889
diff changeset
   686
    "uninitializes; removes myself from the instances dictionary in the settings"
876
585929b1fec2 some cleans
tz
parents: 868
diff changeset
   687
585929b1fec2 some cleans
tz
parents: 868
diff changeset
   688
    super uninitialize.
585929b1fec2 some cleans
tz
parents: 868
diff changeset
   689
1090
d7738a06b696 fixing Thomas's code
Claus Gittinger <cg@exept.de>
parents: 1003
diff changeset
   690
    self class forgetInstance:self
876
585929b1fec2 some cleans
tz
parents: 868
diff changeset
   691
1090
d7738a06b696 fixing Thomas's code
Claus Gittinger <cg@exept.de>
parents: 1003
diff changeset
   692
    "Modified: / 4.2.1999 / 15:34:25 / cg"
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   693
! !
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   694
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   695
!ResourceSpecEditor methodsFor:'user actions'!
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   696
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   697
accept
896
6e23150974d0 comments + docu
tz
parents: 889
diff changeset
   698
    "invoked by the OK button; disables the commit buttons and sets myself modified"
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   699
1157
feeae3138d3d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
   700
    self acceptChannel 
1158
fe67c8fdf68b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1157
diff changeset
   701
        value:false;    
1157
feeae3138d3d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
   702
        value:true;      "/ toggle to force inputFields to accept
feeae3138d3d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
   703
        value:false.    
feeae3138d3d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
   704
2103
ebe0bb50303d valueOf* methods renamed
Claus Gittinger <cg@exept.de>
parents: 2102
diff changeset
   705
    self enablingCommitButtonsHolder value: false.
1201
d8c4b4f52e7e code cleanup
Claus Gittinger <cg@exept.de>
parents: 1159
diff changeset
   706
    self clearModifiedFlag.
2097
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   707
    self setModified
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   708
!
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   709
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   710
doBrowseClass
889
85b7aa0e79e4 comments
tz
parents: 877
diff changeset
   711
    "opens a System Browser on the specClass and specSelector"
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   712
2097
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   713
    specClass notNil 
3519
46d23afbb2a6 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 2874
diff changeset
   714
        ifTrue: [specClass browserClass openInClass:specClass class selector: specSelector] 
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   715
        ifFalse:[self information:'No class defined!!']
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   716
!
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   717
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   718
doEditImage
896
6e23150974d0 comments + docu
tz
parents: 889
diff changeset
   719
    "opens a Image Editor on the resource retriever and the icon selector"
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   720
2097
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   721
    |resourceClass resourceSelector classAndSelector retrieverName|
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   722
2097
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   723
    resourceSelector := (aspects at:#icon) value.
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   724
    resourceSelector isEmptyOrNil ifTrue:[ resourceSelector := #icon ].
934
c32a44c8913e should not redefine AllButOpenInterface;
Claus Gittinger <cg@exept.de>
parents: 929
diff changeset
   725
2097
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   726
    retrieverName := (aspects at:#retriever) value.
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   727
    retrieverName notEmptyOrNil ifTrue:[
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   728
        resourceClass := Smalltalk classNamed:retrieverName
1147
bbaa243ddd1c accept & modifiedChannels
Claus Gittinger <cg@exept.de>
parents: 1090
diff changeset
   729
    ] ifFalse:[
2097
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   730
        specClass notNil ifTrue:[
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   731
            resourceClass := specClass withAllSuperclasses 
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   732
                                detect:[:cls| cls class includesSelector: resourceSelector] 
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   733
                                ifNone:[specClass]
1003
3f728982d7d9 opens an Image Editor in any case
tz
parents: 991
diff changeset
   734
        ]
3f728982d7d9 opens an Image Editor in any case
tz
parents: 991
diff changeset
   735
    ].
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   736
2097
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   737
    (classAndSelector := ImageEditor openModalOnClass: resourceClass andSelector: resourceSelector) notNil
1147
bbaa243ddd1c accept & modifiedChannels
Claus Gittinger <cg@exept.de>
parents: 1090
diff changeset
   738
    ifTrue: [
2097
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   739
        resourceClass := classAndSelector at:1.
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   740
        resourceSelector := classAndSelector at:2.
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   741
        (aspects at:#retriever) value: resourceClass name.
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   742
        (aspects at:#icon) value: resourceSelector. 
2103
ebe0bb50303d valueOf* methods renamed
Claus Gittinger <cg@exept.de>
parents: 2102
diff changeset
   743
        self enablingCommitButtonsHolder value: true
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   744
    ]
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   745
934
c32a44c8913e should not redefine AllButOpenInterface;
Claus Gittinger <cg@exept.de>
parents: 929
diff changeset
   746
    "Modified: / 21.5.1998 / 02:44:04 / cg"
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   747
!
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   748
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   749
doLoad
889
85b7aa0e79e4 comments
tz
parents: 877
diff changeset
   750
    "opens a Resource Selection Browser in order to get a resource message"
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   751
2097
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   752
    |myResourceType classAndSelector|
934
c32a44c8913e should not redefine AllButOpenInterface;
Claus Gittinger <cg@exept.de>
parents: 929
diff changeset
   753
c32a44c8913e should not redefine AllButOpenInterface;
Claus Gittinger <cg@exept.de>
parents: 929
diff changeset
   754
    myResourceType := self class resourceType.
c32a44c8913e should not redefine AllButOpenInterface;
Claus Gittinger <cg@exept.de>
parents: 929
diff changeset
   755
2097
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   756
    classAndSelector := ResourceSelectionBrowser
934
c32a44c8913e should not redefine AllButOpenInterface;
Claus Gittinger <cg@exept.de>
parents: 929
diff changeset
   757
            request: 'Load ', myResourceType asUppercaseFirst, ' Spec From Class'
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   758
            onSuperclass: nil
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   759
            andClass: specClass
934
c32a44c8913e should not redefine AllButOpenInterface;
Claus Gittinger <cg@exept.de>
parents: 929
diff changeset
   760
            andSelector: specSelector ? myResourceType
2097
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   761
            withResourceTypes: (Array with: myResourceType).
934
c32a44c8913e should not redefine AllButOpenInterface;
Claus Gittinger <cg@exept.de>
parents: 929
diff changeset
   762
2097
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   763
    classAndSelector isNil ifTrue:[ ^ self ].
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   764
    ^ self loadFromClass:(classAndSelector methodClass) andSelector:(classAndSelector methodSelector) 
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   765
!
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   766
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   767
doNew
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   768
    "first ask for modification; then clean specClass and specSelector,
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   769
     but only, if the editor is opened as stand alone;
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   770
     finally make a build of a resource spec containing no items"
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   771
2037
a99b25a83641 askForListModification for modal views too
penk
parents: 1994
diff changeset
   772
    self askForModification ifTrue:[
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   773
        self isStandAlone ifTrue: [specClass := specSelector := nil].
2097
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   774
        self loadFromClass:nil andSelector:(self class resourceType).
2037
a99b25a83641 askForListModification for modal views too
penk
parents: 1994
diff changeset
   775
        ^ true
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   776
    ].
2037
a99b25a83641 askForListModification for modal views too
penk
parents: 1994
diff changeset
   777
    ^ false
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   778
!
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   779
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   780
doSave
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   781
    "before saving ask for modification; if no specClass and specSelector
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   782
     is defined, do save as"
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   783
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   784
    self askForItemModification.
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   785
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   786
    (specClass isNil or:[specSelector isNil]) ifTrue:[
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   787
        self doSaveAs.
2097
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   788
        ^ false
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   789
    ].
2097
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   790
    ^ true
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   791
!
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   792
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   793
doSaveAs
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   794
    "first ask for modification; 
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   795
     then open a ResourceSelectionBrowser; 
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   796
     after that extract the resource message;
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   797
     finally do save and make a new build"
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   798
2394
5dd56d160a09 support editing spec only (no class/selector)
Claus Gittinger <cg@exept.de>
parents: 2374
diff changeset
   799
    |masterApplication resourceMessage myResourceType|  
5dd56d160a09 support editing spec only (no class/selector)
Claus Gittinger <cg@exept.de>
parents: 2374
diff changeset
   800
5dd56d160a09 support editing spec only (no class/selector)
Claus Gittinger <cg@exept.de>
parents: 2374
diff changeset
   801
    masterApplication := self masterApplication.
5dd56d160a09 support editing spec only (no class/selector)
Claus Gittinger <cg@exept.de>
parents: 2374
diff changeset
   802
    masterApplication notNil ifTrue:[
5dd56d160a09 support editing spec only (no class/selector)
Claus Gittinger <cg@exept.de>
parents: 2374
diff changeset
   803
        masterApplication isEditingSpecOnly ifTrue:[
5dd56d160a09 support editing spec only (no class/selector)
Claus Gittinger <cg@exept.de>
parents: 2374
diff changeset
   804
            "/ there is no class to store into  
5dd56d160a09 support editing spec only (no class/selector)
Claus Gittinger <cg@exept.de>
parents: 2374
diff changeset
   805
            ^ true            
5dd56d160a09 support editing spec only (no class/selector)
Claus Gittinger <cg@exept.de>
parents: 2374
diff changeset
   806
        ].
5dd56d160a09 support editing spec only (no class/selector)
Claus Gittinger <cg@exept.de>
parents: 2374
diff changeset
   807
    ].
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   808
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   809
    self askForItemModification.
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   810
934
c32a44c8913e should not redefine AllButOpenInterface;
Claus Gittinger <cg@exept.de>
parents: 929
diff changeset
   811
    myResourceType := self class resourceType.
c32a44c8913e should not redefine AllButOpenInterface;
Claus Gittinger <cg@exept.de>
parents: 929
diff changeset
   812
2097
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   813
    resourceMessage := ResourceSelectionBrowser
934
c32a44c8913e should not redefine AllButOpenInterface;
Claus Gittinger <cg@exept.de>
parents: 929
diff changeset
   814
            request: 'Save ', myResourceType asUppercaseFirst, ' Spec In Class'
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   815
            onSuperclass: #Object
2097
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   816
            andClass: specClass name
934
c32a44c8913e should not redefine AllButOpenInterface;
Claus Gittinger <cg@exept.de>
parents: 929
diff changeset
   817
            andSelector: specSelector ? myResourceType
2097
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   818
            withResourceTypes: (Array with: myResourceType).
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   819
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   820
    resourceMessage isNil ifTrue:[ ^ false ].
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   821
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   822
    self clearModified.
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   823
    specClass := resourceMessage methodClass.
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   824
    specSelector := resourceMessage methodSelector.
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   825
    self doSave.
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   826
    self loadFromClass: specClass andSelector: specSelector.
7f078c4af09d code cleanup & refactoring
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
   827
    ^ true
934
c32a44c8913e should not redefine AllButOpenInterface;
Claus Gittinger <cg@exept.de>
parents: 929
diff changeset
   828
c32a44c8913e should not redefine AllButOpenInterface;
Claus Gittinger <cg@exept.de>
parents: 929
diff changeset
   829
    "Modified: / 21.5.1998 / 02:59:46 / cg"
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   830
! !
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   831
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   832
!ResourceSpecEditor class methodsFor:'documentation'!
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   833
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   834
version
3519
46d23afbb2a6 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 2874
diff changeset
   835
    ^ '$Header$'
2874
6a5590e8b647 comment/format in: #initialize
Claus Gittinger <cg@exept.de>
parents: 2748
diff changeset
   836
!
6a5590e8b647 comment/format in: #initialize
Claus Gittinger <cg@exept.de>
parents: 2748
diff changeset
   837
6a5590e8b647 comment/format in: #initialize
Claus Gittinger <cg@exept.de>
parents: 2748
diff changeset
   838
version_CVS
3519
46d23afbb2a6 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 2874
diff changeset
   839
    ^ '$Header$'
867
9da1ff2ac50d initial checkin
tz
parents:
diff changeset
   840
! !
3519
46d23afbb2a6 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 2874
diff changeset
   841