2025 !UIPainter methodsFor:'building editors'! |
2025 !UIPainter methodsFor:'building editors'! |
2026 |
2026 |
2027 openDataSetColumnEditor |
2027 openDataSetColumnEditor |
2028 "opens a Table Column Editor on current widget" |
2028 "opens a Table Column Editor on current widget" |
2029 |
2029 |
2030 |cls loadedFromClass loadedFromSpec editor tableColumnsOrSelector| |
2030 |cls editor specTool columnHolder tableSelector columns| |
2031 |
2031 |
2032 (cls := self resolveName:specClass) isNil ifTrue:[ |
2032 (cls := self resolveName:specClass) isNil ifTrue:[ |
2033 self askForSaving ifFalse: [^self]. |
2033 self askForSaving ifTrue:[cls := self resolveName:specClass]. |
2034 cls := self resolveName:specClass. |
2034 ]. |
2035 ]. |
2035 cls isNil ifTrue:[^ self]. |
|
2036 |
2036 self modifiedChannel value ifTrue:[ |
2037 self modifiedChannel value ifTrue:[ |
2037 (self confirm:'Accept changes made to spec ?') ifTrue:[ |
2038 (self confirm:'Accept changes made to spec ?') ifTrue:[ |
2038 self accept |
2039 self accept |
2039 ] |
2040 ] |
2040 ]. |
2041 ]. |
2041 |
2042 |
2042 loadedFromSpec := loadedFromClass := false. |
2043 editor := DataSetBuilder new. |
2043 editor := DataSetBuilder new. |
2044 specTool := self specTool. |
|
2045 |
2044 editor masterApplication:self. |
2046 editor masterApplication:self. |
2045 editor specClass: cls. |
2047 editor specClass: cls. |
2046 editor rowClassName:(self specTool specification rowClassName). |
2048 editor rowClassName:(specTool specification rowClassName). |
2047 ((tableColumnsOrSelector := self specTool specification columnHolder) notNil and: |
2049 |
2048 [cls class implements: tableColumnsOrSelector]) ifTrue: [ |
2050 columnHolder := specTool aspectFor:#columnHolder. |
2049 editor openModalOnClass: cls andSelector: tableColumnsOrSelector. |
2051 tableSelector := columnHolder value. |
2050 loadedFromClass := true. |
2052 |
2051 ] ifFalse: [ |
2053 tableSelector := tableSelector size ~~ 0 ifTrue:[tableSelector asSymbol] |
2052 (tableColumnsOrSelector := self specTool specification columns) isNil ifTrue: [ |
2054 ifFalse:[nil]. |
2053 editor openModal |
2055 |
2054 ] ifFalse: [ |
2056 (tableSelector notNil and:[cls class implements:tableSelector]) ifTrue:[ |
2055 editor openModalOnResourceSpec:tableColumnsOrSelector. |
2057 editor openModalOnClass:cls andSelector:tableSelector |
2056 loadedFromSpec := true |
2058 ] ifFalse:[ |
2057 ]. |
2059 columns := specTool specification columns. |
2058 ]. |
2060 |
2059 |
2061 columns size ~~ 0 ifTrue:[ |
2060 loadedFromClass ifTrue: [ |
2062 editor openModalOnResourceSpec:columns |
2061 self specTool specification columns:nil. |
2063 ] ifFalse:[ |
2062 self specTool specification rowClassName:nil. |
2064 editor openModal |
2063 self modifiedChannel value:true. |
2065 ] |
2064 self accept. |
2066 ]. |
2065 ]. |
2067 |
2066 |
2068 editor hasSaved ifTrue:[ |
2067 (loadedFromSpec not and: [editor hasSaved and:[editor specSelector ~= tableColumnsOrSelector]]) ifTrue:[ |
2069 specTool specification columns:nil. |
2068 self specTool specification columnHolder:editor specSelector. |
2070 specTool specification rowClassName:(editor rowClassName). |
2069 self modifiedChannel value:true. |
2071 |
2070 self accept. |
2072 tableSelector = editor specSelector ifFalse:[ |
2071 ^self |
2073 columnHolder value:(editor specSelector). |
2072 ]. |
2074 self accept. |
2073 loadedFromClass ifFalse: [ |
2075 ]. |
2074 self specTool specification columns:(editor columns). |
2076 ^ self |
2075 self specTool specification rowClassName:(editor rowClassName). |
2077 ]. |
2076 self modifiedChannel value: editor modified. |
2078 |
2077 ]. |
2079 (editor modified and:[tableSelector isNil]) ifTrue:[ |
2078 |
2080 specTool specification columns:(editor columns). |
2079 |
2081 specTool specification rowClassName:(editor rowClassName). |
|
2082 self modifiedChannel value:true. |
|
2083 ]. |
2080 ! |
2084 ! |
2081 |
2085 |
2082 openEditMenu |
2086 openEditMenu |
2083 "opens a Menu Editor on current widget" |
2087 "opens a Menu Editor on current widget" |
2084 |
2088 |
2085 |cls selectorOrMenu editor selectedSpec spec| |
2089 |cls selectorOrMenu editor selectedSpec spec holder| |
2086 |
2090 |
2087 (cls := self resolveName:specClass) isNil ifTrue:[ |
2091 (cls := self resolveName:specClass) isNil ifTrue:[ |
2088 self askForSaving ifFalse: [^self]. |
2092 self askForSaving ifTrue:[cls := self resolveName:specClass]. |
2089 cls := self resolveName:specClass. |
2093 ]. |
2090 ]. |
2094 cls isNil ifTrue:[^ self]. |
2091 |
2095 |
2092 cls notNil ifTrue:[ |
2096 self modifiedChannel value ifTrue:[ |
2093 spec := self specTool specification. |
2097 (self confirm:'Accept changes made to spec ?') ifTrue:[ |
2094 |
2098 self accept |
2095 self modifiedChannel value ifTrue:[ |
2099 ] |
2096 (self confirm:'Accept changes made to spec ?') ifTrue:[ |
2100 ]. |
2097 self accept |
2101 spec := self specTool specification. |
2098 ] |
2102 |
2099 ]. |
2103 (selectorOrMenu := spec menuSelector) notNil ifTrue:[ |
2100 |
2104 selectorOrMenu := selectorOrMenu asSymbol |
2101 (selectorOrMenu := spec menuSelector) notNil ifTrue:[ |
2105 ] ifFalse:[ |
2102 selectorOrMenu := selectorOrMenu asSymbol |
2106 "/ cg: q&d hack ... |
2103 ] ifFalse:[ |
2107 selectorOrMenu := nil. |
2104 "/ cg: q&d hack ... |
2108 |
2105 |
2109 (selectedSpec := treeView propertySelected) notNil ifTrue:[ |
2106 (selectedSpec := treeView propertySelected) notNil ifTrue:[ |
2110 Object errorSignal handle:[:ex | |
2107 Object errorSignal handle:[:ex | |
2111 selectorOrMenu := nil. |
2108 selectorOrMenu := nil. |
2112 ] do:[ |
2109 ] do:[ |
2113 selectorOrMenu := selectedSpec view asMenu. |
2110 selectorOrMenu := selectedSpec view asMenu. |
2114 ] |
2111 ] |
2115 ]. |
2112 ]. |
2116 ]. |
2113 ]. |
2117 |
2114 |
2118 editor := MenuEditor new. |
2115 editor := MenuEditor new. |
2119 editor masterApplication:self. |
2116 editor masterApplication:self. |
2120 editor specClass: cls. |
2117 editor specClass: cls. |
2121 editor useHelpTool: self helpTool. |
2118 editor useHelpTool: self helpTool. |
2122 |
2119 selectorOrMenu class ~~ Menu |
2123 selectorOrMenu class ~~ Menu |
2120 ifTrue: [editor openModalOnClass:cls andSelector:selectorOrMenu] |
2124 ifTrue: [editor openModalOnClass:cls andSelector:selectorOrMenu] |
2121 ifFalse: [editor openModalOnMenu:selectorOrMenu]. |
2125 ifFalse: [editor openModalOnMenu:selectorOrMenu]. |
2122 self helpTool updateList. |
2126 |
2123 |
2127 self helpTool updateList. |
2124 "/ editor specSelector ~= selectorOrMenu ifTrue:[ |
2128 |
2125 editor hasSaved ifTrue:[ |
2129 editor hasSaved ifTrue:[ |
2126 spec menuSelector:editor specSelector. |
2130 holder := self specTool aspectFor:#menuSelector. |
2127 self modifiedChannel value:true. |
2131 holder value:(editor specSelector). |
2128 self accept |
2132 self accept. |
2129 "/ ] |
2133 ^ self |
2130 ]. |
2134 ]. |
2131 ] |
|
2132 |
|
2133 "Modified: / 16.7.1998 / 18:16:42 / cg" |
|
2134 ! |
2135 ! |
2135 |
2136 |
2136 openHierarchicalListEditor |
2137 openHierarchicalListEditor |
2137 "opens a Hierarchical List Editor on current widget" |
2138 "opens a Hierarchical List Editor on current widget" |
2138 |
2139 |
2193 ! |
2194 ! |
2194 |
2195 |
2195 openTabListEditor |
2196 openTabListEditor |
2196 "opens a Tab List Editor on current widget" |
2197 "opens a Tab List Editor on current widget" |
2197 |
2198 |
2198 |selector editor spec| |
2199 |selector editor spec cls holder| |
2199 |
2200 |
2200 (self resolveName:specClass) isNil ifTrue:[ |
2201 (cls := self resolveName:specClass) isNil ifTrue:[ |
2201 self askForSaving ifFalse: [^self] |
2202 self askForSaving ifTrue:[cls := self resolveName:specClass]. |
2202 ]. |
2203 ]. |
2203 |
2204 cls isNil ifTrue:[^ self]. |
|
2205 |
|
2206 self modifiedChannel value ifTrue:[ |
|
2207 (self confirm:'Accept changes made to spec ?') ifTrue:[ |
|
2208 self accept |
|
2209 ] |
|
2210 ]. |
2204 spec := self specTool specification. |
2211 spec := self specTool specification. |
|
2212 |
2205 (selector := spec listSelector) isArray |
2213 (selector := spec listSelector) isArray |
2206 ifTrue: [^self warn: 'Cannot open the Tab List Editor on an array!!']. |
2214 ifTrue: [^self warn: 'Cannot open the Tab List Editor on an array!!']. |
2207 |
2215 |
2208 editor := TabListEditor new. |
2216 editor := TabListEditor new. |
2209 editor masterApplication:self. |
2217 editor masterApplication:self. |
2210 editor openModalOnClass:specClass andSelector:selector. |
2218 editor openModalOnClass:cls andSelector:selector. |
2211 |
2219 |
2212 editor specSelector ~= selector ifTrue:[ |
2220 editor hasSaved ifTrue:[ |
2213 editor hasSaved ifTrue:[ |
2221 holder := self specTool aspectFor:#listSelector. |
2214 spec listSelector:editor specSelector. |
2222 |
2215 self modifiedChannel value:true. |
2223 holder value ~= editor specSelector ifTrue:[ |
2216 self accept. |
2224 holder value:editor specSelector. |
2217 ] |
2225 self accept. |
2218 ] |
2226 ] |
2219 |
2227 ]. |
2220 "Modified: / 16.7.1998 / 18:15:14 / cg" |
|
2221 ! ! |
2228 ! ! |
2222 |
2229 |
2223 !UIPainter methodsFor:'change & update'! |
2230 !UIPainter methodsFor:'change & update'! |
2224 |
2231 |
2225 layoutChanged |
2232 layoutChanged |