merged in jv's chenges
authorClaus Gittinger <cg@exept.de>
Wed, 05 Feb 2014 19:59:28 +0100
changeset 13849 32273f58f327
parent 13848 194a5618f3d6
child 13850 275d3083a3b4
merged in jv's chenges
AbstractSettingsApplication.st
--- a/AbstractSettingsApplication.st	Wed Feb 05 19:59:26 2014 +0100
+++ b/AbstractSettingsApplication.st	Wed Feb 05 19:59:28 2014 +0100
@@ -332,7 +332,7 @@
 		showEmbeddedTestRunnerInBrowser showBookmarkBar
 		webBrowserLikeLayout sortAndIndentClassesByInheritance
 		showLocalHistory showGlobalHistory useInPlaceSearchInBrowserLists
-		sourceCodeManagementMenuLayout'
+		sourceCodeManagementMenuLayout confirmRefactorings'
 	classVariableNames:''
 	poolDictionaries:''
 	privateIn:AbstractSettingsApplication
@@ -348,6 +348,22 @@
 	privateIn:AbstractSettingsApplication
 !
 
+AbstractSettingsApplication subclass:#ToolboxSettingsAppl
+	instanceVariableNames:'changesBrowserClassName fileBrowserClassName'
+	classVariableNames:''
+	poolDictionaries:''
+	privateIn:AbstractSettingsApplication
+!
+
+ApplicationModel subclass:#ClassToolSetting
+	instanceVariableNames:'optionValueHolder optionValueList optionLabelHolder
+		optionSelectionHolder optionLabelList optionCustomValueHolder
+		optionCustomValueVisibleHolder optionCustomValueBackgroundHolder'
+	classVariableNames:''
+	poolDictionaries:''
+	privateIn:AbstractSettingsApplication::ToolboxSettingsAppl
+!
+
 AbstractSettingsApplication subclass:#ToolsSettingsAppl
 	instanceVariableNames:'useNewVersionDiffBrowser transcriptBufferSize useNewInspector
 		showClockInLauncher useNewChangesBrowser useNewFileBrowser
@@ -6552,11 +6568,11 @@
 initialize
 
     super initialize.
-    
+
     mappings := Screen current keyboardMap.
 
-    rawKeyList := (mappings keys collect:[:key | key asString]) asArray sort.
-    functionKeyList := (mappings values asSet collect:[:key | key asString]) asArray sort.
+    rawKeyList := (mappings keys collect:[:key | key asString] as:Array) sort.
+    functionKeyList := (mappings values asSet collect:[:key | key asString] as:Array) sort.
 
     self labelTextHolder value:(resources at:'KEY_MSG2' default:'keyboard mapping:') withCRs.
 ! !
@@ -14681,16 +14697,17 @@
 
     | entry dlg |
     entry := managerPerMatchingModule at: selectedManagerPerMatchingModuleHolder value.
-    dlg := PerModuleManagerSettingDialog new.    
+    dlg := PerModuleManagerSettingDialog new.
     dlg package: entry package.
     dlg manager: entry manager.
     dlg open ifTrue:[
-        entry package: dlg package.
-        entry manager: dlg manager.
-        entry changed.
+	entry package: dlg package.
+	entry manager: dlg manager.
+	entry changed.
+	self updateModifiedChannel.
     ]
 
-    "Modified: / 09-07-2011 / 16:04:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 29-03-2012 / 11:53:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 actionMoveDown
@@ -15150,7 +15167,7 @@
 
     availableManagers := self availableManagers.
     availableManagers size == 1 ifTrue:[
-        ^ availableManagers
+        ^ availableManagers anElement
     ].
 
     idx := self selectedManagerTypeIndexHolder value.
@@ -17122,7 +17139,7 @@
 !AbstractSettingsApplication::SystemBrowserSettingsAppl methodsFor:'actions'!
 
 aspects
-    ^ #( 
+    ^ #(
         "/ showAcceptCancelBarInBrowser
         useSearchBarInBrowser
         showMethodTemplate
@@ -17135,9 +17152,11 @@
         showLocalHistory
         useInPlaceSearchInBrowserLists
         sourceCodeManagementMenuLayout
+        confirmRefactorings
     )
 
     "Created: / 25-11-2011 / 15:09:28 / cg"
+    "Modified: / 04-04-2012 / 14:03:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 basicReadSettings
@@ -17160,6 +17179,17 @@
 
 !AbstractSettingsApplication::SystemBrowserSettingsAppl methodsFor:'aspects'!
 
+confirmRefactorings
+
+    confirmRefactorings isNil ifTrue:[
+	confirmRefactorings := false asValue.
+	confirmRefactorings onChangeSend:#updateModifiedChannel to:self
+    ].
+    ^ confirmRefactorings.
+
+    "Created: / 07-06-2011 / 14:34:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
 showAcceptCancelBarInBrowser
     showAcceptCancelBarInBrowser isNil ifTrue:[
         showAcceptCancelBarInBrowser := false asValue.
@@ -17738,6 +17768,661 @@
     "Modified: / 10-11-2010 / 12:08:25 / cg"
 ! !
 
+!AbstractSettingsApplication::ToolboxSettingsAppl class methodsFor:'image specs'!
+
+defaultIcon
+    "This resource specification was automatically generated
+     by the ImageEditor of ST/X."
+
+    "Do not manually edit this!! If it is corrupted,
+     the ImageEditor may not be able to read the specification."
+
+    "
+     self defaultIcon inspect
+     ImageEditor openOnClass:self andSelector:#defaultIcon
+     Icon flushCachedIcons
+    "
+
+    <resource: #image>
+
+    ^Icon
+	constantNamed:'AbstractSettingsApplication::ToolboxSettingsAppl class defaultIcon'
+	ifAbsentPut:[(Depth8Image new) width: 24; height: 24; photometric:(#palette); bitsPerSample:(#[8]); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XFA (@@@@@@@@@@@@@@@@@@@@@@@@@@@DA@PDJA @@
+@@@@@@@@@@@@@@@@@@@@B DB@PDA@PX@@@@@@@@@@@@@@@@@@@@@@@DB@ HB@PX@@@@@@@@@@@@@A XFA XIB@ GA0XFA ,FA XF@@@@@@@FAPTEAPTEAPLC
+@0LC@0LC@0LCA @@@@@EAPTEAPTEAPLC@0LCA XC@0LC@0@@@@@EAPTEAPTEAPLC@0LC@PDH@0LC@0@@@@@FAPTEAPTEAPLC@0LC@PDG@0LCA @@@@@FAPTE
+APTEAPLC@0LC@PDH@0LCA @@@@@FAPTEAPTEAPLC@0LCA HC@0LCA @@@@@FAPTEAPTEAPLC@0LC@0LC@0LCA @@@@@FAPTEAPTEAPLC@0LC@0LC@0LCA @@
+@@@FAPTEAPTEAPLC@0LC@0LC@0LCA @@@@@FAPTEAPTEAPLC@0LC@0LC@0LCA @@@@@FAPTEAPTEAPLC@0LC@0LC@0XF@@@@@@@@A0TEAPTEAPLC@0LCB@XF
+@@@@@@@@@@@@@@@KA XI@0LGA ,@@@@@@@@@@@@@@@@@@@@@@@@@A@P@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@a') ; colorMapFromArray:#[107 107 107 253 252 252 180 180 180 254 102 102 154 154 154 255 0 0 46 49 49 98 53 53 171 80 80 155 25 25 128 128 128 73 74 74]; mask:((Depth1Image new) width: 24; height: 24; photometric:(#blackIs0); bitsPerSample:(#[1]); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'@@@@@@@@@C0@@C<@@G>@@G>@G??8O??<O??<O??<O??<O??<O??<O??<O??<O??<O??<O??8G??@A?0@@F@@@@@@@@@@@@@@') ; yourself); yourself]
+! !
+
+!AbstractSettingsApplication::ToolboxSettingsAppl class methodsFor:'interface specs'!
+
+developmentToolsSpec
+    "This resource specification was automatically generated
+     by the UIPainter of ST/X."
+
+    "Do not manually edit this!! If it is corrupted,
+     the UIPainter may not be able to read the specification."
+
+    "
+     UIPainter new openOnClass:AbstractSettingsApplication::ToolboxSettingsAppl andSelector:#developmentToolsSpec
+     AbstractSettingsApplication::ToolboxSettingsAppl new openInterface:#developmentToolsSpec
+    "
+
+    <resource: #canvas>
+
+    ^
+     #(FullSpec
+	name: developmentToolsSpec
+	window:
+       (WindowSpec
+	  label: 'Development'
+	  name: 'Development'
+	  bounds: (Rectangle 0 0 674 614)
+	)
+	component:
+       (SpecCollection
+	  collection: (
+	   (VerticalPanelViewSpec
+	      name: 'DevToolsPanel'
+	      layout: (LayoutFrame 0 0 0 0 0 1 0 1)
+	      horizontalLayout: fit
+	      verticalLayout: top
+	      horizontalSpace: 3
+	      verticalSpace: 3
+	      postBuildCallback: developmentToolSettingsInto:
+	    )
+	   )
+
+	)
+      )
+
+    "Modified: / 03-04-2012 / 10:51:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+miscToolsSpec
+    "This resource specification was automatically generated
+     by the UIPainter of ST/X."
+
+    "Do not manually edit this!! If it is corrupted,
+     the UIPainter may not be able to read the specification."
+
+    "
+     UIPainter new openOnClass:AbstractSettingsApplication::ToolboxSettingsAppl andSelector:#developmentToolsSpec
+     AbstractSettingsApplication::ToolboxSettingsAppl new openInterface:#developmentToolsSpec
+    "
+
+    <resource: #canvas>
+
+    ^
+     #(FullSpec
+	name: miscToolsSpec
+	window:
+       (WindowSpec
+	  label: 'Other'
+	  name: 'Other'
+	  bounds: (Rectangle 0 0 674 614)
+	)
+	component:
+       (SpecCollection
+	  collection: (
+	   (VerticalPanelViewSpec
+	      name: 'DevToolsPanel'
+	      layout: (LayoutFrame 0 0 0 0 0 1 0 1)
+	      horizontalLayout: fit
+	      verticalLayout: top
+	      horizontalSpace: 3
+	      verticalSpace: 3
+	      postBuildCallback: miscToolSettingsInto:
+	    )
+	   )
+
+	)
+      )
+
+    "Created: / 03-04-2012 / 10:51:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+windowSpec
+    "This resource specification was automatically generated
+     by the UIPainter of ST/X."
+
+    "Do not manually edit this!! If it is corrupted,
+     the UIPainter may not be able to read the specification."
+
+    "
+     UIPainter new openOnClass:AbstractSettingsApplication::ToolboxSettingsAppl andSelector:#windowSpec
+     AbstractSettingsApplication::ToolboxSettingsAppl new openInterface:#windowSpec
+     AbstractSettingsApplication::ToolboxSettingsAppl open
+    "
+
+    <resource: #canvas>
+
+    ^
+     #(FullSpec
+	name: windowSpec
+	window:
+       (WindowSpec
+	  label: 'Toolbox Settings'
+	  name: 'Toolbox Settings'
+	  bounds: (Rectangle 0 0 551 561)
+	)
+	component:
+       (SpecCollection
+	  collection: (
+	   (NoteBookViewSpec
+	      name: 'NoteBook'
+	      layout: (LayoutFrame 0 0 0 0 0 1 0 1)
+	      menu: notebookTabList
+	    )
+	   )
+
+	)
+      )
+! !
+
+!AbstractSettingsApplication::ToolboxSettingsAppl class methodsFor:'list specs'!
+
+notebookTabList
+    "This resource specification was automatically generated
+     by the TabListEditor of ST/X."
+
+    "Do not manually edit this!! If it is corrupted,
+     the TabListEditor may not be able to read the specification."
+
+    "
+     TabListEditor new openOnClass: self andSelector:#notebookTabList
+    "
+
+    <resource: #tabList>
+
+    ^     #(
+       (TabItem
+	  label: 'Development'
+	  minorKey: developmentToolsSpec
+	  createNewBuilder: false
+	)
+       (TabItem
+	  label: 'Miscelaneous'
+	  minorKey: miscToolsSpec
+	  createNewBuilder: false
+	)
+
+       )
+
+      collect:[:aTab| TabItem new fromLiteralArrayEncoding:aTab ]
+
+    "Modified: / 03-04-2012 / 10:52:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!AbstractSettingsApplication::ToolboxSettingsAppl methodsFor:'aspects'!
+
+aspects
+
+    ^#(
+	"Development"
+	changesBrowserClassName
+
+	"Misc"
+	fileBrowserClassName
+    )
+
+    "Created: / 14-02-2012 / 18:36:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+changesBrowserClassName
+    <resource: #uiAspect>
+
+    "automatically generated by UIPainter ..."
+
+    "*** the code below creates a default model when invoked."
+    "*** (which may not be the one you wanted)"
+    "*** Please change as required and accept it in the browser."
+    "*** (and replace this comment by something more useful ;-)"
+
+    changesBrowserClassName isNil ifTrue:[
+	changesBrowserClassName := ValueHolder new.
+"/ if your app needs to be notified of changes, uncomment one of the lines below:
+"/       changesBrowserClassName addDependent:self.
+      changesBrowserClassName onChangeSend:#updateModifiedChannel to:self.
+    ].
+    ^ changesBrowserClassName.
+
+    "Modified: / 14-02-2012 / 18:58:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+fileBrowserClassName
+    <resource: #uiAspect>
+
+    fileBrowserClassName isNil ifTrue:[
+	fileBrowserClassName := ValueHolder new.
+	fileBrowserClassName onChangeSend:#updateModifiedChannel to:self.
+    ].
+    ^ fileBrowserClassName.
+
+    "Modified: / 14-02-2012 / 18:58:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Created: / 03-04-2012 / 10:54:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+notebookTabList
+    "Generated by the TabListEditor"
+
+    |list|
+
+    (list := builder bindingAt:#notebookTabList) isNil ifTrue:[
+	builder aspectAt:#notebookTabList put:(list := self class notebookTabList).
+    ].
+    ^ list
+! !
+
+!AbstractSettingsApplication::ToolboxSettingsAppl methodsFor:'hooks'!
+
+developmentToolSettingsInto:panel
+
+    (self addClassToolSettingTo: panel)
+	label: 'Changes Browser';
+	classes:#(  #ChangesBrowser
+		    #NewChangesBrowser
+		    #Tools::ChangeSetBrowser2 );
+	labels: #(  'ChangesBrowser - default'
+		    'NewChangesBrowser - experimental, not maintained'
+		    'Tools::ChangeSetBrowser2 - experimental' );
+	model: self changesBrowserClassName
+
+    "Created: / 14-02-2012 / 16:20:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+miscToolSettingsInto:panel
+
+    (self addClassToolSettingTo: panel)
+	label: 'File Browser';
+	classes:#(  #FileBrowser
+		    #FileBrowserV2
+		    #FileBrowserV3 );
+	labels: #(  'FileBrowser'
+		    'FileBrowserV2 - default'
+		    'FileBrowserV3 - experimental' );
+	model: self fileBrowserClassName
+
+    "Created: / 03-04-2012 / 10:54:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!AbstractSettingsApplication::ToolboxSettingsAppl methodsFor:'private'!
+
+addClassToolSettingTo: panel
+
+    | model setting canvas |
+    canvas := ApplicationSubView new.
+    setting := ClassToolSetting new.
+    setting createBuilder.
+    setting model: model.
+    setting window: canvas.
+    canvas client: setting.
+    canvas height: 30.
+    panel addSubView: canvas.
+    ^setting
+
+    "Created: / 14-02-2012 / 18:56:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!AbstractSettingsApplication::ToolboxSettingsAppl methodsFor:'protocol'!
+
+basicReadSettings
+    "superclass AbstractSettingsApplication says that I am responsible to implement this method"
+
+    self readAspects: self aspects from: currentUserPrefs.
+
+    "Modified: / 14-02-2012 / 18:37:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+basicSaveSettings
+    "superclass AbstractSettingsApplication says that I am responsible to implement this method"
+
+    self writeAspects: self aspects to: currentUserPrefs
+
+    "Modified: / 14-02-2012 / 18:38:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+helpFilename
+    "subclasses must return the relative name of a helpFile
+     in the doc/online/<language>/help directory.
+     Or nil, if no help is available."
+
+    ^ self shouldImplement
+! !
+
+!AbstractSettingsApplication::ToolboxSettingsAppl methodsFor:'queries'!
+
+hasUnsavedChanges
+    "superclass AbstractSettingsApplication says that I am responsible to implement this method"
+
+    ^self hasChangedAspectIn: self aspects asComparedTo:currentUserPrefs
+
+    "Modified: / 14-02-2012 / 18:38:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!AbstractSettingsApplication::ToolboxSettingsAppl::ClassToolSetting class methodsFor:'interface specs'!
+
+windowSpec
+    "This resource specification was automatically generated
+     by the UIPainter of ST/X."
+
+    "Do not manually edit this!! If it is corrupted,
+     the UIPainter may not be able to read the specification."
+
+    "
+     UIPainter new openOnClass:AbstractSettingsApplication::ToolboxSettingsAppl::ClassToolSetting andSelector:#windowSpec
+     AbstractSettingsApplication::ToolboxSettingsAppl::ClassToolSetting new openInterface:#windowSpec
+     AbstractSettingsApplication::ToolboxSettingsAppl::ClassToolSetting open
+    "
+
+    <resource: #canvas>
+
+    ^
+     #(FullSpec
+	name: windowSpec
+	window:
+       (WindowSpec
+	  label: 'ToolSetting'
+	  name: 'ToolSetting'
+	  min: (Point 10 10)
+	  bounds: (Rectangle 0 0 431 60)
+	)
+	component:
+       (SpecCollection
+	  collection: (
+	   (LabelSpec
+	      label: 'Tool...'
+	      name: 'Label'
+	      layout: (LayoutFrame 0 0 0 0 150 0 30 0)
+	      translateLabel: true
+	      labelChannel: optionLabelHolder
+	      adjust: left
+	    )
+	   (PopUpListSpec
+	      label: 'Please select...'
+	      name: 'OptionList'
+	      layout: (LayoutFrame 150 0 3 0 0 1 27 0)
+	      model: optionSelectionHolder
+	      menu: optionLabelList
+	      useIndex: true
+	    )
+	   (InputFieldSpec
+	      name: 'EntryField1'
+	      layout: (LayoutFrame 150 0 33 0 0 1 56 0)
+	      visibilityChannel: optionCustomValueVisibleHolder
+	      backgroundChannel: optionCustomValueBackgroundHolder
+	      model: optionCustomValueHolder
+	      type: string
+	      immediateAccept: true
+	      acceptOnReturn: true
+	      acceptOnTab: true
+	      acceptOnPointerLeave: true
+	    )
+	   )
+
+	)
+      )
+! !
+
+!AbstractSettingsApplication::ToolboxSettingsAppl::ClassToolSetting methodsFor:'accessing'!
+
+classes: aCollection
+
+    optionValueList := aCollection.
+
+    "Created: / 14-02-2012 / 18:20:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+label: aString
+
+    self optionLabelHolder value: aString
+
+    "Created: / 14-02-2012 / 18:22:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+labels: aCollection
+
+    | labels |
+    labels := aCollection asOrderedCollection.
+    labels add: (self class resources at: 'Custom class') asText allItalic.
+    self optionLabelList value: labels.
+
+    "Created: / 14-02-2012 / 18:21:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+model: aValueHolder
+
+    self optionValueHolder: aValueHolder
+
+    "Created: / 14-02-2012 / 18:22:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!AbstractSettingsApplication::ToolboxSettingsAppl::ClassToolSetting methodsFor:'aspects'!
+
+optionCustomValueBackgroundHolder
+    <resource: #uiAspect>
+
+    "automatically generated by UIPainter ..."
+
+    "*** the code below creates a default model when invoked."
+    "*** (which may not be the one you wanted)"
+    "*** Please change as required and accept it in the browser."
+    "*** (and replace this comment by something more useful ;-)"
+
+    optionCustomValueBackgroundHolder isNil ifTrue:[
+	optionCustomValueBackgroundHolder := ValueHolder new.
+"/ if your app needs to be notified of changes, uncomment one of the lines below:
+"/       optionCustomValueBackgroundHolder addDependent:self.
+"/       optionCustomValueBackgroundHolder onChangeSend:#optionCustomValueBackgroundHolderChanged to:self.
+    ].
+    ^ optionCustomValueBackgroundHolder.
+!
+
+optionCustomValueBackgroundHolder:something
+    "set the 'optionCustomValueBackgroundHolder' value holder (automatically generated)"
+
+    optionCustomValueBackgroundHolder := something.
+!
+
+optionCustomValueHolder
+    <resource: #uiAspect>
+
+    "automatically generated by UIPainter ..."
+
+    "*** the code below creates a default model when invoked."
+    "*** (which may not be the one you wanted)"
+    "*** Please change as required and accept it in the browser."
+    "*** (and replace this comment by something more useful ;-)"
+
+    optionCustomValueHolder isNil ifTrue:[
+	optionCustomValueHolder := ValueHolder new.
+"/ if your app needs to be notified of changes, uncomment one of the lines below:
+       optionCustomValueHolder addDependent:self.
+"/       optionCustomValueHolder onChangeSend:#optionCustomValueHolderChanged to:self.
+    ].
+    ^ optionCustomValueHolder.
+
+    "Modified: / 14-02-2012 / 18:18:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+optionCustomValueVisibleHolder
+    <resource: #uiAspect>
+
+    "automatically generated by UIPainter ..."
+
+    "*** the code below creates a default model when invoked."
+    "*** (which may not be the one you wanted)"
+    "*** Please change as required and accept it in the browser."
+    "*** (and replace this comment by something more useful ;-)"
+
+    optionCustomValueVisibleHolder isNil ifTrue:[
+	optionCustomValueVisibleHolder := false asValue.
+"/ if your app needs to be notified of changes, uncomment one of the lines below:
+       optionCustomValueVisibleHolder addDependent:self.
+"/       optionCustomValueVisibleHolder onChangeSend:#optionCustomValueVisibleHolderChanged to:self.
+    ].
+    ^ optionCustomValueVisibleHolder.
+
+    "Modified: / 14-02-2012 / 18:27:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+optionLabelHolder
+    <resource: #uiAspect>
+
+    "automatically generated by UIPainter ..."
+
+    "*** the code below creates a default model when invoked."
+    "*** (which may not be the one you wanted)"
+    "*** Please change as required and accept it in the browser."
+    "*** (and replace this comment by something more useful ;-)"
+
+    optionLabelHolder isNil ifTrue:[
+	optionLabelHolder := ValueHolder new.
+"/ if your app needs to be notified of changes, uncomment one of the lines below:
+"/       optionLabelHolder addDependent:self.
+"/       optionLabelHolder onChangeSend:#optionLabelHolderChanged to:self.
+    ].
+    ^ optionLabelHolder.
+!
+
+optionLabelList
+    <resource: #uiAspect>
+
+    "automatically generated by UIPainter ..."
+
+    "*** the code below creates a default model when invoked."
+    "*** (which may not be the one you wanted)"
+    "*** Please change as required and accept it in the browser."
+    "*** (and replace this comment by something more useful ;-)"
+
+    optionLabelList isNil ifTrue:[
+	optionLabelList := ValueHolder new.
+"/ if your app needs to be notified of changes, uncomment one of the lines below:
+"/       optionLabelList addDependent:self.
+"/       optionLabelList onChangeSend:#optionLabelListChanged to:self.
+    ].
+    ^ optionLabelList.
+!
+
+optionLabelList:something
+    "set the 'optionLabelList' value holder (automatically generated)"
+
+    optionLabelList := something.
+!
+
+optionSelectionHolder
+    <resource: #uiAspect>
+
+    "automatically generated by UIPainter ..."
+
+    "*** the code below creates a default model when invoked."
+    "*** (which may not be the one you wanted)"
+    "*** Please change as required and accept it in the browser."
+    "*** (and replace this comment by something more useful ;-)"
+
+    optionSelectionHolder isNil ifTrue:[
+	optionSelectionHolder := ValueHolder new.
+"/ if your app needs to be notified of changes, uncomment one of the lines below:
+       optionSelectionHolder addDependent:self.
+"/       optionSelectionHolder onChangeSend:#optionSelectionHolderChanged to:self.
+    ].
+    ^ optionSelectionHolder.
+
+    "Modified: / 14-02-2012 / 18:26:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+optionSelectionHolder:something
+    "set the 'optionSelectionHolder' value holder (automatically generated)"
+
+    |oldValue newValue|
+
+    optionSelectionHolder notNil ifTrue:[
+	oldValue := optionSelectionHolder value.
+	optionSelectionHolder removeDependent:self.
+    ].
+    optionSelectionHolder := something.
+    optionSelectionHolder notNil ifTrue:[
+	optionSelectionHolder addDependent:self.
+    ].
+    newValue := optionSelectionHolder value.
+    oldValue ~~ newValue ifTrue:[
+	self update:#value with:newValue from:optionSelectionHolder.
+    ].
+!
+
+optionValueHolder
+    "return/create the 'optionValueHolder' value holder (automatically generated)"
+
+    optionValueHolder isNil ifTrue:[
+	optionValueHolder := ValueHolder new.
+	optionValueHolder addDependent:self.
+    ].
+    ^ optionValueHolder
+!
+
+optionValueHolder:something
+    "set the 'optionValueHolder' value holder (automatically generated)"
+
+    |oldValue newValue|
+
+    optionValueHolder notNil ifTrue:[
+	oldValue := optionValueHolder value.
+	optionValueHolder removeDependent:self.
+    ].
+    optionValueHolder := something.
+    optionValueHolder notNil ifTrue:[
+	optionValueHolder addDependent:self.
+    ].
+    newValue := optionValueHolder value.
+    oldValue ~~ newValue ifTrue:[
+	self update:#value with:newValue from:optionValueHolder.
+    ].
+! !
+
+!AbstractSettingsApplication::ToolboxSettingsAppl::ClassToolSetting methodsFor:'change & update'!
+
+update:something with:aParameter from:changedObject
+    "Invoked when an object that I depend upon sends a change notification."
+
+    "stub code automatically generated - please change as required"
+
+    changedObject == optionSelectionHolder ifTrue:[
+	| idx |
+
+	idx := self optionSelectionHolder value.
+	self optionCustomValueVisibleHolder value: (idx == optionLabelList value size).
+	idx <= optionValueList size ifTrue:[
+	    self optionValueHolder value: (optionValueList at: idx)
+	].
+	 ^ self.
+    ].
+    changedObject == optionCustomValueVisibleHolder ifTrue:[
+	self window notNil ifTrue:[
+	    optionCustomValueVisibleHolder value ifTrue:[
+		self window height: 60
+	    ] ifFalse:[
+		self window height: 30
+	    ]
+	]
+    ].
+
+    changedObject == optionValueHolder ifTrue:[
+	| idx |
+
+	self optionSelectionHolder value: ((optionValueList ? #()) indexOf: optionValueHolder value ifAbsent:[optionLabelList value size]).
+	self optionCustomValueHolder value: optionValueHolder value.
+
+    ].
+
+
+    super update:something with:aParameter from:changedObject
+
+    "Modified: / 14-02-2012 / 19:01:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
 !AbstractSettingsApplication::ToolsSettingsAppl class methodsFor:'help specs'!
 
 flyByHelpSpec
@@ -18384,10 +19069,10 @@
 !AbstractSettingsApplication class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/AbstractSettingsApplication.st,v 1.508 2014-02-05 10:02:29 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/AbstractSettingsApplication.st,v 1.509 2014-02-05 18:59:28 cg Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libtool/AbstractSettingsApplication.st,v 1.508 2014-02-05 10:02:29 cg Exp $'
-! !
-
+    ^ '$Header: /cvs/stx/stx/libtool/AbstractSettingsApplication.st,v 1.509 2014-02-05 18:59:28 cg Exp $'
+! !
+