--- a/UIPainter.st Wed Feb 21 18:21:37 2001 +0100
+++ b/UIPainter.st Fri Feb 23 08:07:07 2001 +0100
@@ -2027,110 +2027,111 @@
openDataSetColumnEditor
"opens a Table Column Editor on current widget"
- |cls loadedFromClass loadedFromSpec editor tableColumnsOrSelector|
+ |cls editor specTool columnHolder tableSelector columns|
(cls := self resolveName:specClass) isNil ifTrue:[
- self askForSaving ifFalse: [^self].
- cls := self resolveName:specClass.
+ self askForSaving ifTrue:[cls := self resolveName:specClass].
].
+ cls isNil ifTrue:[^ self].
+
self modifiedChannel value ifTrue:[
- (self confirm:'Accept changes made to spec ?') ifTrue:[
- self accept
- ]
+ (self confirm:'Accept changes made to spec ?') ifTrue:[
+ self accept
+ ]
].
- loadedFromSpec := loadedFromClass := false.
- editor := DataSetBuilder new.
+ editor := DataSetBuilder new.
+ specTool := self specTool.
+
editor masterApplication:self.
editor specClass: cls.
- editor rowClassName:(self specTool specification rowClassName).
- ((tableColumnsOrSelector := self specTool specification columnHolder) notNil and:
- [cls class implements: tableColumnsOrSelector]) ifTrue: [
- editor openModalOnClass: cls andSelector: tableColumnsOrSelector.
- loadedFromClass := true.
- ] ifFalse: [
- (tableColumnsOrSelector := self specTool specification columns) isNil ifTrue: [
- editor openModal
- ] ifFalse: [
- editor openModalOnResourceSpec:tableColumnsOrSelector.
- loadedFromSpec := true
- ].
+ editor rowClassName:(specTool specification rowClassName).
+
+ columnHolder := specTool aspectFor:#columnHolder.
+ tableSelector := columnHolder value.
+
+ tableSelector := tableSelector size ~~ 0 ifTrue:[tableSelector asSymbol]
+ ifFalse:[nil].
+
+ (tableSelector notNil and:[cls class implements:tableSelector]) ifTrue:[
+ editor openModalOnClass:cls andSelector:tableSelector
+ ] ifFalse:[
+ columns := specTool specification columns.
+
+ columns size ~~ 0 ifTrue:[
+ editor openModalOnResourceSpec:columns
+ ] ifFalse:[
+ editor openModal
+ ]
].
- loadedFromClass ifTrue: [
- self specTool specification columns:nil.
- self specTool specification rowClassName:nil.
- self modifiedChannel value:true.
- self accept.
+ editor hasSaved ifTrue:[
+ specTool specification columns:nil.
+ specTool specification rowClassName:(editor rowClassName).
+
+ tableSelector = editor specSelector ifFalse:[
+ columnHolder value:(editor specSelector).
+ self accept.
+ ].
+ ^ self
].
- (loadedFromSpec not and: [editor hasSaved and:[editor specSelector ~= tableColumnsOrSelector]]) ifTrue:[
- self specTool specification columnHolder:editor specSelector.
- self modifiedChannel value:true.
- self accept.
- ^self
+ (editor modified and:[tableSelector isNil]) ifTrue:[
+ specTool specification columns:(editor columns).
+ specTool specification rowClassName:(editor rowClassName).
+ self modifiedChannel value:true.
].
- loadedFromClass ifFalse: [
- self specTool specification columns:(editor columns).
- self specTool specification rowClassName:(editor rowClassName).
- self modifiedChannel value: editor modified.
- ].
-
-
!
openEditMenu
"opens a Menu Editor on current widget"
- |cls selectorOrMenu editor selectedSpec spec|
+ |cls selectorOrMenu editor selectedSpec spec holder|
(cls := self resolveName:specClass) isNil ifTrue:[
- self askForSaving ifFalse: [^self].
- cls := self resolveName:specClass.
+ self askForSaving ifTrue:[cls := self resolveName:specClass].
+ ].
+ cls isNil ifTrue:[^ self].
+
+ self modifiedChannel value ifTrue:[
+ (self confirm:'Accept changes made to spec ?') ifTrue:[
+ self accept
+ ]
].
-
- cls notNil ifTrue:[
- spec := self specTool specification.
-
- self modifiedChannel value ifTrue:[
- (self confirm:'Accept changes made to spec ?') ifTrue:[
- self accept
- ]
- ].
-
- (selectorOrMenu := spec menuSelector) notNil ifTrue:[
- selectorOrMenu := selectorOrMenu asSymbol
- ] ifFalse:[
- "/ cg: q&d hack ...
-
- (selectedSpec := treeView propertySelected) notNil ifTrue:[
- Object errorSignal handle:[:ex |
- selectorOrMenu := nil.
- ] do:[
- selectorOrMenu := selectedSpec view asMenu.
- ]
- ].
- ].
-
- editor := MenuEditor new.
- editor masterApplication:self.
- editor specClass: cls.
- editor useHelpTool: self helpTool.
- selectorOrMenu class ~~ Menu
- ifTrue: [editor openModalOnClass:cls andSelector:selectorOrMenu]
- ifFalse: [editor openModalOnMenu:selectorOrMenu].
- self helpTool updateList.
-
-"/ editor specSelector ~= selectorOrMenu ifTrue:[
- editor hasSaved ifTrue:[
- spec menuSelector:editor specSelector.
- self modifiedChannel value:true.
- self accept
-"/ ]
- ].
- ]
-
- "Modified: / 16.7.1998 / 18:16:42 / cg"
+ spec := self specTool specification.
+
+ (selectorOrMenu := spec menuSelector) notNil ifTrue:[
+ selectorOrMenu := selectorOrMenu asSymbol
+ ] ifFalse:[
+ "/ cg: q&d hack ...
+ selectorOrMenu := nil.
+
+ (selectedSpec := treeView propertySelected) notNil ifTrue:[
+ Object errorSignal handle:[:ex |
+ selectorOrMenu := nil.
+ ] do:[
+ selectorOrMenu := selectedSpec view asMenu.
+ ]
+ ].
+ ].
+
+ editor := MenuEditor new.
+ editor masterApplication:self.
+ editor specClass: cls.
+ editor useHelpTool: self helpTool.
+
+ selectorOrMenu class ~~ Menu
+ ifTrue: [editor openModalOnClass:cls andSelector:selectorOrMenu]
+ ifFalse: [editor openModalOnMenu:selectorOrMenu].
+
+ self helpTool updateList.
+
+ editor hasSaved ifTrue:[
+ holder := self specTool aspectFor:#menuSelector.
+ holder value:(editor specSelector).
+ self accept.
+ ^ self
+ ].
!
openHierarchicalListEditor
@@ -2195,29 +2196,35 @@
openTabListEditor
"opens a Tab List Editor on current widget"
- |selector editor spec|
-
- (self resolveName:specClass) isNil ifTrue:[
- self askForSaving ifFalse: [^self]
+ |selector editor spec cls holder|
+
+ (cls := self resolveName:specClass) isNil ifTrue:[
+ self askForSaving ifTrue:[cls := self resolveName:specClass].
].
-
+ cls isNil ifTrue:[^ self].
+
+ self modifiedChannel value ifTrue:[
+ (self confirm:'Accept changes made to spec ?') ifTrue:[
+ self accept
+ ]
+ ].
spec := self specTool specification.
+
(selector := spec listSelector) isArray
- ifTrue: [^self warn: 'Cannot open the Tab List Editor on an array!!'].
+ ifTrue: [^self warn: 'Cannot open the Tab List Editor on an array!!'].
editor := TabListEditor new.
editor masterApplication:self.
- editor openModalOnClass:specClass andSelector:selector.
-
- editor specSelector ~= selector ifTrue:[
- editor hasSaved ifTrue:[
- spec listSelector:editor specSelector.
- self modifiedChannel value:true.
- self accept.
- ]
- ]
-
- "Modified: / 16.7.1998 / 18:15:14 / cg"
+ editor openModalOnClass:cls andSelector:selector.
+
+ editor hasSaved ifTrue:[
+ holder := self specTool aspectFor:#listSelector.
+
+ holder value ~= editor specSelector ifTrue:[
+ holder value:editor specSelector.
+ self accept.
+ ]
+ ].
! !
!UIPainter methodsFor:'change & update'!